gzip 圧縮の強制についてhttp://www.stevesouders.com/blog/2010/07/12/velocity-forcing-gzip-compression/についてSteve Souders が議論していることを実装しようとしています。
これを実行しているモジュールがあります:
void context_PreSendRequestHeaders(object sender, EventArgs e)
{
var app = sender as HttpApplication;
var request = app.Request;
var response = app.Response;
if (CompressionUtils.GzipSupported(request) || CompressionUtils.GzipNotSupportedExplicitly(request))
{
return;
}
if (CompressionUtils.GzipSupportedExplicitly(request))
{
response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
response.AddHeader(HttpHeaderKey.ContentEncoding, "gzip");
return;
}
response.Write("<iframe style=\"display:none;\" src=\"/CompressedPage.aspx\"></iframe>");
}
CompressionUtils.GzipSupported
「accepts-encoding」ヘッダーを
CompressionUtils.GzipSupportedExplicitly
確認CompressionUtils.GzipNotSupportedExplicitly
し、ブラウザが本当にgzipを読み取れるかどうかを示すCookieを確認します
しかし、Firefox でページを読み込むと、次のエラーが表示されます。
コンテンツのエンコード エラー
表示しようとしているページは、無効またはサポートされていない形式の圧縮を使用しているため、表示できません。
Fiddler では、コンテンツ エンコーディング ヘッダーが追加されているが、コンテンツが圧縮されていないことが示されています。