プロが教えるわが家の防犯対策術!

お世話になります。

zip ファイルの Content-Length が、取得できるものとできないものがあるのですが、これはなぜでしょうか?

1) http://example.com/hoge1.zip
2) http://example.com/hoge2.zip

パケットキャプチャすると、1) のレスポンスには Content-Length が付与されており、2) にはされていません。

1) と 2) の zip ファイルの違いは、ファイルサイズだけです。
2) の zip ファイルは 18 MB 強あります。

どなたかご回答お願いします。

A 回答 (1件)

Webサーバの実装次第ですが、Content-Lengthはファイルサイズが大きい場合、


付与されないケースがあります。

http://www.studyinghttp.net/header#Content-Length
を参照してください。

レスポンスデータのサイズが大きい場合、転送エンコーディングという方法で
レスポンスデータが生成される場合があります。この場合、Content-Lengthは
付与されません。

また、転送エンコーディングを使用せず、Content-Lengthも付与されてない
場合は、コネクションが切断されるまでがレスポンスデータであるということに
なっていますので、あらかじめレスポンスの全体サイズがわからないような場合は、
Content-Lengthを付与せず、コネクションの切断をもってレスポンスデータの終わり
とする場合もあります。
    • good
    • 0
この回答へのお礼

丁寧な解説ありがとうございます。

申し遅れましたが Web サーバーは Apache 2.2.3, OS は CentOS 5.5 (64bit) です。

パケットキャプチャすると、Content-Length のみならず、レスポンスコードすら返ってきません。
(リンクをブラウザからたたいてファイルダウンロードした時 ファイル自体はダウンロードできます)

ご教示いただいたリンク先を読んでみます。

お礼日時:2011/06/24 11:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!