12

これがSOに属するかどうかは完全にはわかりませんが、他にどこに尋ねればよいかわかりません。

私のWebアプリの読み込み速度を確認しているときに、HTTP応答(html、css、jsの種類に関係なく)がgzip/deflate圧縮されていないことに気付きました。つまり、「Content-Encoding:gzip」のような応答ヘッダーはどのリクエストにも存在せず、ブラウザはリソースが圧縮されていないことを報告します。

  • 複数のブラウザ(IE10、FF 17、Chrome 23、Opera 12.10、Safari 5.x)でテストおよび確認されています
  • Windows8Proを実行している2台のマシンでテストおよび確認済み
  • Fiddlerでダブルチェック-応答は圧縮されておらず、コンテンツエンコーディングヘッダーが含まれていません
  • これは私のWebアプリでのみ発生するわけではなく、テストした他のWebサイトは圧縮された応答を送信していないようです(ブラウザーによると)
  • Windows 7では、応答は圧縮され、すべてのヘッダーとともに到着します
  • HTTPS応答圧縮されています

応答ヘッダーの例を次に示します(content-encodingヘッダーがないことに注意してください)。 クライアントマシンの応答ヘッダー

サーバー側もチェックしました。サーバーはWindowsServer2008 R2 /IIS7.5を実行しています。サーバーが何を送信しているかを調べるために、FailedRequestTracingを使用しました。リソースが圧縮されているようです。

サーバー側の圧縮

また、サーバーは適切なヘッダーを送信しているようです。

圧縮ヘッダー

私の結論:ここに介入しているのはWindows8であるに違いありません。どうやらそれはHTTP応答を変更します。Windows 8が圧縮された応答を受信し、それを解凍し、コンテンツエンコーディングヘッダーを削除して、変更された応答をパイプラインのさらに下に渡すと仮定します。

今私の質問:

  • Windows 8がHTTP応答を変更し、それが私が説明したように機能することを誰かが確認できますか?
  • この動作を監視または無効にする方法はありますか?

よろしくお願いします。

よろしく、アンドレ


更新:Wiresharkを使用して、クライアントに何が届くかを確認しました。予想どおり、リソースは圧縮されており、content-encodingヘッダーはまだ存在しています。下の画像はwiresharkプロトコルを示し、右下にはChromeが受信した応答を示しています。

Wireshark

これは、Windows8が介入しているという私の仮定を裏付けています。

4

1 に答える 1

9

犯人は私のウイルス対策ソフトウェア、アバスト、より具体的には統合されたリアルタイムネットワークシールドであることが判明しました。これをオフにすると、応答がブラウザで圧縮されて表示されます。

興味深いことに、アバストはWindows 7マシンでも実行されていましたが、テスト中に適用可能な場合は圧縮されたマシンで応答しました。

于 2012-11-22T23:45:13.767 に答える