これはHTML/XMLファイルに対してのみ機能しますか?
いいえ:たとえば、CSSファイルやJSファイルによく使用されます。これらはWebサイトで構成されている最大のものの1つであり(画像を除く)、JSフレームワークとフルJSアプリケーションがあるため、大きなメリットがあります。
実際、テキストベースの形式はどれも非常にうまく圧縮できます(反対に、たとえば、画像は一般にすでに圧縮されているため、画像を圧縮することはできません)。時々、Ajaxから返されたJSONデータ-リクエストも圧縮されます-結局のところ、それはテキストデータです;-)
私のPHP/Perlファイルがいくつかの単純なコンマ区切りデータを生成し、それをブラウザに送信するとしますが、それはデフォルトでエンコードされますか?
それは構成の問題です:その種のコンテンツを圧縮するようにサーバーを構成した場合、おそらく圧縮されます:-
)(ブラウザーがgzipでエンコードされたデータを受け入れると言った場合)
ブログで使用しているApache2の構成例(mod_deflateを使用)は次のとおりです。
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/xml
</IfModule>
ここでは、html / xml / css /JSteを圧縮したいと思います。
そして、これは同じことですが、Apache 1(mod_gzip)で一度使用したいくつかの構成オプションをプラス/マイナスします。
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_can_negotiate Yes
mod_gzip_minimum_file_size 256
mod_gzip_maximum_file_size 500000
mod_gzip_dechunk Yes
mod_gzip_item_include file \.css$
mod_gzip_item_include file \.html$
mod_gzip_item_include file \.txt$
mod_gzip_item_include file \.js$
mod_gzip_item_include mime text/html
mod_gzip_item_exclude mime ^image/
</IfModule>
ここで気付くことができるのは、ファイルを圧縮するのに小さすぎる(ゲインはそれほど重要ではない)または大きすぎる(圧縮するにはCPUを消費しすぎる)ことを望まないということです。そして、css / html / txt / jsファイルを圧縮したいのですが、画像は圧縮しません。
カンマ区切りのデータを同じ方法で圧縮する場合は、コンテンツタイプまたは拡張機能のいずれかをWebサーバーの構成に追加して、gzip圧縮をアクティブにする必要があります。
これをテストする方法はありますか?
ブラウザに直接返されるコンテンツの場合、Firefoxの拡張機能であるFirebugまたはLiveHTTPHeadersは必須です。
ブラウザの標準的な通信方法を経由しないコンテンツの場合、それは難しいかもしれません; 結局、Wiresharkのようなものを使用して、実際にパイプを通過しているものを「スニッフィング」する必要があるかもしれません...それで頑張ってください!
SilverlightやFlashなどのプラットフォームについてはどうでしょうか。そのようなデータをダウンロードすると、ブラウザー/ランタイムによって自動的に圧縮/解凍されますか?
SilverlightとFlashに関する質問に答えるために、圧縮コンテンツをサポートしていることを示すAcceptヘッダーを送信する場合、Apacheはmod_deflateまたはmod_gzipを使用します。圧縮をサポートしていない場合、ヘッダーは送信されません。それは「うまくいく」でしょう。–ネイト