- ベストアンサー
zip ファイルの Content-Length
お世話になります。 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 強あります。 どなたかご回答お願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Webサーバの実装次第ですが、Content-Lengthはファイルサイズが大きい場合、 付与されないケースがあります。 http://www.studyinghttp.net/header#Content-Length を参照してください。 レスポンスデータのサイズが大きい場合、転送エンコーディングという方法で レスポンスデータが生成される場合があります。この場合、Content-Lengthは 付与されません。 また、転送エンコーディングを使用せず、Content-Lengthも付与されてない 場合は、コネクションが切断されるまでがレスポンスデータであるということに なっていますので、あらかじめレスポンスの全体サイズがわからないような場合は、 Content-Lengthを付与せず、コネクションの切断をもってレスポンスデータの終わり とする場合もあります。
お礼
丁寧な解説ありがとうございます。 申し遅れましたが Web サーバーは Apache 2.2.3, OS は CentOS 5.5 (64bit) です。 パケットキャプチャすると、Content-Length のみならず、レスポンスコードすら返ってきません。 (リンクをブラウザからたたいてファイルダウンロードした時 ファイル自体はダウンロードできます) ご教示いただいたリンク先を読んでみます。