POSTのTransfer-Encoding: chunkedを実際に話す例(Piping Server)
#Transfer-Encoding:_chunked #HTTP
きっかけ
で説明する際にデモを撮ったこと。
Transfer-Encoding: chunkedを話す様子
ncat -C ppng.io 80を使って手動でHTTPを話す。
話す相手のHTTPサーバーはPiping Server。そのため左側が送信でPOSTのTransfer-Encoding: chunkedを使っていて、右側では普通のcurlコマンドで内容を受信している。
https://gyazo.com/67161b5eb0f5244a5b38d17141b59ebe
以下が話した内容。
code:HTTPの
PUT /mypath HTTP/1.1
Host: ppng.io
Transfer-Encoding: chunked
Expect: 100-continue
3
Hi!
3
H
b
ow are you?
2
0
重要なのは-Cオプションをつけているところ。これは改行をCRLFにするオプション。
そのためボディ部分も改行をするために2バイト消費している点に注意。
この-Cがないとバイト数の後の改行が正常に認識してもらえなかった。
netcatコマンドはncだったりnetcatだったり色々あるイメージで今回はncatというもので検証した環境では利用可能だった。Mac標準で入っていたのものかbrew経由のものなのかは要調査。
ncatの環境
netcatコマンドだが色々とある。
code:console
$ ncat -v
Ncat: Version 7.80 ( https://nmap.org/ncat )
Ncat: You must specify a host to connect to. QUITTING.