web-dev-qa-db-ja.com

gZip圧縮とは何ですか?

アクセスとダウンロードを高速化するためにWebページにgZipを使用する必要があり、帯域幅も節約できることをよく耳にしました。

それでは、このgZip圧縮とは何ですか?また、ダウンロードをどのように高速化するのでしょうか? HTMLと画像、またはHTMLのみを圧縮します。

WebアプリでgZipの使用を開始する場合、considerationsを作成する必要がありますか?サーバーまたはブラウザー制限がありますか、または特定のエンコードのみをサポートしますか?.

49
Ric

GZipはデータ圧縮の一種です。つまり、データの塊を取り、サイズを小さくします。元のデータは、圧縮ファイルを解凍することで復元できます。

HTTPプロトコルには送信されるデータをgzipする機能が含まれているため、WebアプリおよびWebサイトに関連しています。

これは、サイトを訪れる人が小さなファイルをダウンロードするため、サイトが使用されているとき、サイトを提供するための帯域幅コストが低くなることを意味します。

GZipの使用にはいくつかの注意事項がありますが、一般的には、gzipを使用するよりもgzipを使用する方が適切です。たとえば、Zipに時間とプロセッサパワーがかかり、ファイルを解凍しますが、通常、これは問題ではありませんそれにかかる時間は、多くの場合、小さなファイルをダウンロードすることで節約される時間よりも短くなります。したがって、ブラウザがファイルを解凍する必要があるにもかかわらず、全体的な効果は時間の節約になります。

GZipはすべてのファイルを圧縮できます。ファイルの種類やエンコードに違いはありません。明らかに、一部のファイルは他のファイルよりも効率的に圧縮できるため、帯域幅の節約は異なります-HTMLなどのテキストファイルが最良の結果をもたらします画像は既にいくつかの圧縮が組み込まれているため、gzipでそれほど圧縮されません。一部のファイル(たとえば、.Zipファイル)は、gzipするとさらに大きくなる可能性があります。これは、ファイルをさらに圧縮することはできませんが、gzipはメタデータをファイルに追加する必要があるためです。しかし、これらはEdgeのケースであり、大きな違いはありません。

HTTPを介したGZipは通常、完全に透過的に発生します。エンドユーザーは、それが起こっていることに完全に気付かないようにしてください。ブラウザはそれらの背後でそれを行います。また、Webサーバー側からは、Webサーバーソフトウェアの構成設定を有効にするだけです。あなたの観点から、それは本当にあなたが知る必要があるすべてです。サーバーでgzip設定を設定するだけです(またはISPに依頼してください)。あなたが知らなくてもあなたのサイトですでにアクティブになっている可能性は十分にあります。

54
Spudley

GZip html、js、cssなどのファイルを圧縮して、ブラウザーにリクエストを提供します。ファイルのサイズが小さくなると、より高速にユーザーに提供されます。すべてのブラウザが圧縮をサポートしているわけではありませんが、現在ではすべての最新のブラウザがサポートされています。強くお勧めしますが、サーバーのCPU使用率が増加することが1つの部分であり、いつかは問題になる可能性があります。クライアント側のキャッシュでGzipを使用すると、パフォーマンスが向上します。

4
Devesh