質問

サイトのパフォーマンスを改善しようとすることに関する以前の投稿から、HTTP圧縮について見てきました。 IISでのセットアップについて読んだことがありますが、すべてのIISアプリケーションプールに対してグローバルなことのようです。別のサイトも実行されているため、これを行うことはできません。次に、Webサイトごとに同じことを実現するためにglobal.asaxに配置するコードを見ました。

こちら http://www.stardeveloper.com/articles/display.html?article=2007110401&page= 1] 1

これはIISのセットアップと同じくらい良いですか?効果はどれほど劇的ですか?既知の問題はありますか?

役に立ちましたか?

解決

これを進める場合は、global.asaxではなくHttpModuleを実装することをお勧めします。 HttpModuleを使用すると、構成の変更と再構築を組み合わせて圧縮を無効にでき、Webアプリとは別に圧縮アセンブリを使用できます。

Rich Craneには2.0モジュールがあります: http://www.codeplex.com/httpcompression/ すぐに起動して実行したい場合。

Steven Rogersが言及した blowery プロジェクトもHttpModuleです。

それ以外の場合、独自の記述は非常に簡単です。 HttpModuleは、global.asaxと同じイベント、BeginRequest、EndRequest、およびPostReleaseRequestStateやPreSendRequestHeadersなどのよりきめの細かいイベントを提供します。

IISの圧縮とHttpModuleに関しては、IISの方が間違いなく簡単です。別のアセンブリに煩わされる必要がないからです。ビジネスアプリで両方の方法を使用しましたが、どちらも負荷テストでほぼ同等に動作します。 IISが利用可能な場合、それを使用すると言います。

HTML、JS、CSS、およびXMLファイルの60〜80%の圧縮は、gzipで一般的です。ペイロードの多くは、圧縮がはるかに難しい画像やマルチメディアオブジェクトである可能性があることに注意してください。

他のヒント

http://blowery.org/httpcompress/

しばらくの間、仕事でこの圧縮ユーティリティを使用しました。かなり良い。

たとえば、IIS構成にアクセスできない共有ホスティング環境にいる場合は、Global.asaxオプションが適していると思います。

IIS 6は基本的な圧縮サポートを提供しますが、既にIIS 7を使用している場合は、優れた HTTP圧縮のサポートにより、構成ファイルのMIMEタイプに基づいて圧縮するファイルを定義できます...

IIS圧縮と本質的に同じことを実現します-両方ともgzip圧縮で応答を送信します。最近このメソッドを実装しましたが、応答サイズを一貫して60%削減します。パフォーマンスに影響を与える心配はありません。

いくつかの問題が考えられます。まず、出力キャッシュに注意する必要があります。カスタムVaryByを使用して、異なるAccept-Encodingヘッダーを持つリクエストに対して異なるバージョンがキャッシュされるようにする必要があります。それ以外の場合、圧縮バージョンがキャッシュされている場合、ブラウザが受け入れるかどうかにかかわらず、すべてのユーザーがそれを受け取ります。

第二に、GZipStreamは、Response.EndまたはResponse.Flushを使用する場合、ストリームが手遅れになるまで閉じられないため、応答から最後の数文字を切り捨てることがあります。私はこれに対する良い解決策を知りません。

最後に、これはHTMLのみを圧縮します。 CSSまたはJavascriptファイルはすべて正常に提供されます。たとえば、カスタムIHttpHandlerを介してこれらのファイルを提供し、それらを圧縮する必要があります。

JavaScriptおよびVBScriptに問題があります。 JavaScriptの問題は、 codinghorrorの記事に関するxxldanielのコメントで確認されています。 JSONのような「Scripting.Dictionary」を使用してVBScript(M $ Officeオートメーション用)で問題が発生しました。 " Microsoft.XMLHTTP"リクエスト。

mod_gzip モジュールを試すことができます。管理されたZLibバージョンを使用し、高度に調整可能な構成を可能にします。構文は、同じ名前のApacheモジュールと互換性があり、さらに拡張されています。そのため、たとえば、MIMEタイプごとに異なる圧縮レベルなどを設定できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top