CDNを通過する静的コンテンツがいくつかあります。静的コンテンツにIIS6の組み込み圧縮(gzipとdeflate)を使用していますが、これは要求すると正常に機能します。ただし、CDNがコンテンツの最初のリクエストを行うとき、コンテンツは圧縮されて返されません。したがって、それを要求する人々に転送するための圧縮されたコンテンツはありません。(はい、これにより、圧縮を処理できないブラウザを使用してCDNに[zip形式の]コンテンツを要求するという問題が発生します。-とりあえずこれを片側に置きます)
'Via'ヘッダーなしでリクエストする例を次に示します。
HEAD /flash/swfobject.js HTTP / 1.1 ユーザーエージェント:curl / 7.19.7(i386-pc-win32) ホスト:localhost:9120 承認: */* 接続:Keep-Alive accept-encoding:gzip
そして、圧縮された応答を返します。
HTTP / 1.1 200 OK コンテンツ-長さ:4357 コンテンツタイプ:application / x-javascript コンテンツエンコーディング:gzip 有効期限:2020年1月1日水曜日00:00:00 GMT 最終変更日:2009年11月18日水曜日15:36:52 GMT Accept-Ranges:バイト 変更:Accept-エンコーディング サーバー:Microsoft-IIS / 6.0 日付:2009年11月19日木曜日10:27:50 GMT
ただし、(CDNのように)リクエストに「Via」ヘッダーを含めると、結果は圧縮されずに返されます。
リクエスト:
HEAD /flash/swfobject.js HTTP / 1.1 ユーザーエージェント:curl / 7.19.7(i386-pc-win32) ホスト:localhost:9120 承認: */* 接続:Keep-Alive 経由:1.1 204.160.105.17:80(フットプリント4.5 / FPMCP) accept-encoding:gzip
応答:
HTTP / 1.1 200 OK コンテンツ-長さ:14602 コンテンツタイプ:application / x-javascript 有効期限:2020年1月1日水曜日00:00:00 GMT 最終変更日:2009年11月18日水曜日15:36:54 GMT Accept-Ranges:バイト サーバー:Microsoft-IIS / 6.0 日付:2009年11月19日木曜日10:29:52 GMT
はい、これらのデモではリクエストで「localhost」を使用しています。ただし、さまざまなネットワーク上のさまざまなマシンから実際のドメイン名を使用しても同じ結果が得られます。
次に2つの質問:
これは、余分なヘッダーが原因でIISが圧縮を適用していない可能性がありますか?もしそうなら、私はそれについて何ができますか?
プロキシがコンテンツを返す前に解凍しているかどうかを確認するにはどうすればよいですか?
ボーナス質問3-この問題をさらに調査するために何ができますか?
私は質問332049を知っていますが、それは要求ではなく応答にヘッダーがあります。