2009-04-10 8 views
2

これは奇妙なものです:奇妙なhttp gzipの問題

mod_phpでApache 2にnginxのリバースプロキシリクエストがあります。

ユーザー(firefox 3.1b3を使用している)が最近、通常のナビゲーション中に散発的になっていると報告しました。"What should firefox do with this file?" popups私たちはこの問題について他の報告をしておらず、自分自身でそれを再現することができませんでした。

NginxとApacheのログを確認しました。エラーログには何も表示されず、両方ともリクエストに対する通常のHTTP 200が表示されます。

私は彼にダウンロードしたファイルを送ってもらいました.HTMLが生成されました。末尾にいくつかの先頭のバイトが付いている点を除きます。

開口バイトシーケンスが魔法GZIPヘッダである:ここ1F8B08

開口文字は、便宜上Cエスケープ:

\x1F\x8B\x089608\r\n<!DOCTYPE HTML ... 

とファイルで終わる:

...</html>\n\r\n0\r\n\r\n 

wgetで同じURLを取得すると、期待どおりに開始されます。不思議な開閉のバイトはどこにも見えません。

誰もこれに似たものを見たことがありますか?これはFF 3.1b3のバグでしょうか?

答えて

1

まったく問題は見られませんでしたが、実際にサーバーからgzipされたコンテンツを受け取ったときにgzip圧縮コンテンツを処理できるという透過的なプロキシを使用すると、それを解凍せずにgzipヘッダを取り除き、その結果をブラウザに送りました。私たちが見た振る舞いは、あなたが描写したものでした:通常のウェブページであったはずのものを保存する/開いたファイルダイアログ。この場合、該当するブラウザはIEでした。

問題があるかどうかはわかりませんが、実験として、プロキシとApacheの間のリクエストを見て、それらがgzipされているかどうかを確認したり、リクエストのgzip圧縮をオフにしたりできますApacheで問題が修正されているかどうか確認してください。もしそうなら、おそらくあなたのプロキシのgzip処理に問題があります。

+0

私はこの記事でjbourqueを使っています...ストリームにコンテンツが追加されていると、ブラウザのバグのように聞こえません。 PHPのiniでgzipハンドラが有効になっているかどうかを確認し、mod_deflateがApacheで動作しているかどうかを確認し、設定を確認してください。 – zombat

1

wgetは圧縮応答を要求しません。試してみてください:

curl --compressed <URL> 

をまたレスポンスヘッダを印刷し、そして賢明なContent-Typeが返されていることを確認し-vを追加してみてください。