チャンク転送エンコード
Content-Length 値がサーバーによって報告されないという特殊な場合があります。チャンク転送エンコードでは、サーバーはメッセージ本文の全体サイズを事前に認識することなく、HTTP プロトコルを使用してデータを転送します。チャンク転送エンコードがサーバーによって有効化された場合、応答は以下のようになります。
.HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Cache-Control: private
Pragma: no-cache
Set-Cookie: logging=CC4993FF05A9AC05B52CD9756B094B10|egapp39p|;
Domain=.example.com; Path=/
Set-Cookie: DealDetectorUser=true; Domain=.example.com; Expires=Thu,
20-Feb-2031 14:39:33 GMT; Path=/
P3P: CP="CAO DSP CURa ADMa DEVa TAIa PSAa PSDa IVAi IVDi CONi OUR DELi SAMi
OTRi BUS PHY ONL UNI PUR COM NAV INT DEM STA POL HEA PRE GOV"
Content-Type: text/html
Date: Fri, 25 Feb 2011 14:39:33 GMT
Transfer-Encoding: chunked
上記の例で、Content-Length について報告された値はありません。 コンテンツの長さは事前にわからないため、以下の値が挿入されます。
Transfer-Encoding: chunked
PCA は、転送がチャンクであることを認識すると、パケットを集めてヒットを作成し、チャンクされた最後のパケットに到達するまでページの DataSize 値を追跡します。最後のパケットは長さゼロのチャンク (0 としてコーディングされたチャンク・サイズ) で指定され、データ・セクションがありません。
注: チャンク転送エンコードでは Content-Length 値がサーバーによって報告されないため、各チャンクのヘッダーにはチャンクの長さについての項目が含まれています。その結果、チャンクの合計の実際の長さは動的に計算されます。
- いずれかのチャンクが、そのヘッダーで報告されているとおりにすべてのデータを提供できない場合、PCA は、チャンクが表示されるページを ReqCancelled ページとしてマークを付けます。