クライアントにファイルを提供する (PHP) スクリプトを作成しています。特に、Content-Length ヘッダーが送信されますが、1 バイトだけ多すぎます。コンテンツの長さを別のヘッダーに入れ、2 つを比較したときにこれを発見しました。
$filesize = filesize($file);
header('Content-Length: ' . $filesize);
header('X-Content-Length: ' . $filesize);
結果:
Content-Length: 3481
X-Content-Length: 3480
関数にハードコーディング3480
してもheader()
、これは結果です。Apache がヘッダーに対してこれを行っていると思われます。
何が原因でしょうか?
編集:状況を説明するために:Zend Frameworkがこれを引き起こしていると思います:現在生産中(および動作中)のコードを、問題が発生するZFにリファクタリングしています。このコードを ZF の外で試してみると、すべて問題ありません。おそらくZFは出力バッファリングを行っており、ヘッダー自体または何かを再送信していますが、私はZFをよく知りません。