どのようなサーバー側GZippingす。
-
12-09-2019 - |
質問
ということをHTMLに関連ファイルフォーマット圧縮をGZipで圧縮、サーバ側( mod_gzip Apacheサーバ)は、解凍による対応のブラウザを推奨いたします。("コンテントエンコーディング")
この動作のためのHTML/XMLファイル?でも私のPHP/Perlのファイルを簡単なコンマ区切りでデータをするときは、そのブラウザで符号化されたデフォルト?
うなどのプラットフォームSilverlightフローティングゲートフラッシュ、ダウンロードなどのデータになるので圧縮/解凍によるブラウザの設定で実行しまうのですか?必要があります。試験です。
解決
HTML / XMLのためにこれだけの作業を行います ファイル?
いいえ:それはかなり頻繁例えば、CSSやJSファイルに使用される - それらとウェブサイトが(画像を除く)で構成されていることが最大のものの間である、なぜならJSフレームワークやフルJSアプリケーションの、それが表します巨大なゲイン!
実際には、任意のテキストベースのフォーマットは、非常によく圧縮することができる(反対に、イメージできない、例えば、それらは一般的に、既に圧縮されているように)。時々、JSONデータをAjaxを要求から返さがあまりにも圧縮されている - それは、テキストデータ、やっぱだ; - )
私のPHP / Perlのファイルが生成するとしましょう いくつかの簡単なコンマは、データを区切りと ブラウザに、それがされることを送信します デフォルトでエンコードされた?
これは設定の問題だ:あなたは、コンテンツの種類を圧縮するようにサーバーを構成した場合、それはおそらく:-)圧縮されます
の(ブラウザがgzipでエンコードされたデータを受け入れると言う場合)の
ここで私は私のブログ上で使用(mod_deflateを使用)のApache 2のコンフィギュレーションのサンプルがあります:
<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 / JS TE圧縮されます。
そして、ここに同じことである、プラス/マイナスいくつかの設定オプションは、私は、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ファイルは圧縮されますが、したくない画像ます。
あなたが同じように圧縮するあなたは、カンマ区切りのデータが必要な場合は、それがコンテンツタイプだか、それはそれのためにgzipで圧縮を有効にするには、あなたのウェブサーバの設定に拡張機能のいずれかを追加する必要があります。
これをテストする方法はありますか?
は、任意のコンテンツについて直接ブラウザに戻った、Firefoxの拡張 Firebugののか<のhref = "https://でaddons.mozilla.org/en-US/firefox/addon/3829" relが= "nofollowをnoreferrer">-持っている必要がありますのLiveHTTPHeadersます。
ブラウザの標準的な通信方法を経由しないコンテンツの場合、それは難しいかもしれません。最後に、あなたが本当に通過しているものを「スニフ」に Wiresharkののようなものを使用して終了する必要がありますパイプ...それで頑張って!
のSilverlightやFlashなどのプラットフォームについては何、 彼らは、このようなデータをダウンロードする際には、解凍/圧縮されます ブラウザ/ランタイムによって自動的に?
彼らは圧縮されたコンテンツをサポートして示すAcceptヘッダーを送信する場合、Silverlightとフラッシュについてのご質問に答えるために、Apacheはmod_deflateをかmod_gzipのを使用します。彼らは圧縮をサポートしていない場合、彼らはヘッダを送信しません。それは「ただ働き。」します - ネイトの
他のヒント
私はので、Apacheの mod_deflate
のがmod_gzip
よりも一般的だと思いますそれは組み込みと同じことをしています。 mod_deflate
(上記のリンク)のドキュメントを見て、あなたはそれが彼らのMIMEタイプに基づいて、圧縮するファイルの種類を指定するのは簡単だということがわかります。一般的にはHTML、CSS、XMLとJavaScriptを圧縮する価値があります。画像は既に圧縮されているので、彼らは圧縮しても効果はありません。
ブラウザに送付する"Accept-Encoding"ヘッダーの種類の圧縮ることを知ってどのように理解するサーバはこれを見て、ユーザーエージェントなどで決定し、どのようにエンコードします。ブラウザもああいう理解できるので、このはさらに複雑なものだけではな検索のための"柔軟"のヘッダを表します。
技術的には、HTTP/2xx応答とできるコンテンツの内容エンコードを使って有効なコンテントエンコーディング(gzip、zlib,deflate等)、 だが実際ので無駄な適用の圧縮に共通のイメージ-タイプなのでそして大きくなります。
お気に入りの商品がきっと圧縮の応答のダイナミックなPHPのです。もっとも簡単なメソッドは、追加:
<?php ob_start("ob_gzhandler"); ?>
開始のPHPのページです。このよ設定はPHP設定のコースです。
多くの試験のページを簡単に見られる Google: