1

回答結果はこんな感じ

HTTP/1.1 200 OK
Date: Fri, 11 Feb 2011 06:59:47 GMT
Server: Apache
Set-Cookie: id%22%3Bs%3A32%3A%223c38c56b3def2530014336c922ee0bfc%22%3Bs%3A10%3A%22ip_address%22%3Bs%3A14%3A%2269.162.119.226%22%3Bs%3A10%3A%22user_agent%22%3Bs%3A0%3A%22%22%3Bs%3A13%3A%22last_activity%22%3Bs%3A10%3A%221297407587%22%3B%7Dcd356ca12b8d395b49603cb3eb34f786; expires=Fri, 11-Feb-2011 08:59:47 GMT; path=/ Set-Cookie: vaave_session=a%3A3Bs%3A32%3A%223c38c56b3def2530014336c922ee0bfc%22%3Bs%3A10%3A%22ip_address%22%3Bs%3A14%3A%2269.162.119.226%22%3Bs%3A10%3A%22user_agent%22%3Bs%3A0%3A%22%22%3Bs%3A13%3A%22last_activity%22%3Bs%3A10%3A%221297407587%22%3Bs%3A2%3A%22tz%22%3Bs%3A13%3A%22Asia%2FCalcutta%22%3B%7Daadf6cb5ad21eae3c04e24cf00b3ea16; expires=Fri, 11-Feb-2011 08:59:47 GMT; path=/ 
Connection: close
Transfer-Encoding: chunked

"data here"
4

1 に答える 1

0

データは「チャンク」、つまり長さが先行するバイトのブロックで送信されます。ウィキペディアのを引用するには:

HTTP/1.1 200 OK
Content-Type: text/plain
Transfer-Encoding: chunked

25
This is the data in the first chunk

1C
and this is the second one

3
con
8
sequence
0

ここで関連するヘッダーはTransfer-Encoding: chunked. 最初の行に 16 進数があることがわかります。これは、次のチャンクで期待されるバイト数を示しています.16進数で25は10進数で37であり、確かに、37文字の後に改行があり、その後に次のチャンクのバイト数を持つ別の16進数が続きます。 the end - 最後のチャンク サイズは 0 でなければならず、データの終わりを示します。(チャンクサイズはコンテンツの一部ではありません)。デコードされたメッセージは次のようになります。

This is the data in the first chunk
and this is the second one
consequence

編集: PECL にはhttp_chunked_decode()という既存の関数があるようです。そのページにも純粋な PHP 実装があります。チャンク データを渡すだけで、「チャンクを解除」しようとします。

于 2011-02-11T07:24:45.617 に答える