web-dev-qa-db-ja.com

Content-Encodingの適切な使用

ページのContent-EncodingをZipまたはgzipに設定することで、ロード時間を短縮し、帯域幅を削減することを提案していると聞きました。これは平均的なサイトに実装する価値がありますか、それとも高負荷のサイトのみに実装する価値がありますか?また、LAMP環境でこのように提供されるページをどのように設定しますか? Zipとgzipに実際的な違いはありますか?

9
Oren Hizkiya

これは、平均的なトラフィックレベルから低いトラフィックレベルのサイトでも、絶対に行う価値があります。帯域幅は(CPU使用率がわずかに増加すると)減少しますが、本当の利点はユーザーにあります。ブロードバンドでも、圧縮されたページにアクセスするとパフォーマンスが向上することに気づくことができますが、遅いネットワーク速度と新しいスマートフォンを使用しているユーザーはそれを高く評価しています。

6
JasonBirch

ブラウザーは、「Accept Encoding」ヘッダーを送信する場合があります。これは、さまざまな種類のエンコードを受け入れることができることを示します。通常、これは「gzip、deflate」です。 (Google Chromeには "sdch"と呼ばれる奇妙な形式がありますが、これは無視できます)。その後、ブラウザからそのヘッダーを取得した場合は、必要に応じて、 gzipまたはdeflate形式。もちろん、それを行うときは、ブラウザに実行内容を伝える必要があるため、送信コンテンツに「コンテンツエンコーディング」ヘッダーを追加します。

Gzip形式とdeflate形式は、RFC(インターネット標準文書)で定義されています。一部のブラウザには「bzip2」オプションがありますが、「Zip」オプションはありません。

ここでの問題は、その形式でコンテンツをエンコードして送り返すことです。 Apacheを使用している場合は、Apacheを自動的に設定する方法があります(mod_deflateなど)。画像を送信する場合は、JPEG、PNG、GIFなどのほとんどの画像形式が既に圧縮されているため、圧縮してもメリットが得られないことに注意してください。基本的に、HTML、CSS、プレーンテキスト、またはJavaScriptでのみ機能します。

Internet Explorerにはそれをあまり理解していない長年のバグがあるため、「deflate」エンコーディングの使用には注意が必要です。 Google App Engineのような派手なものは、使用する圧縮を自動的に決定し、それをあなたに適用すると信じています。

2
delete

Jason Birchs および Kinopikos の回答を拡張するために:この(非常に単純な)最適化を絶対に適用したいもう1つの重要な理由は、使用するGoogleの発表です site speedウェブ検索ランキングで 2010年4月9日現在。SEOの取り組みが簡単に改善されることをお見逃しなく。

その角度から物事を見始めると、おそらくあなたのページのパフォーマンスとそれを改善するために何ができるかについての洞察を与えるそれぞれのツールの恩恵を受けるでしょう(そして一緒に仕事を楽しむでしょう):

1
Steffen Opel