ほとんどの圧縮アルゴリズムをプレーンテキスト ファイルに適用すると、ファイルの内容にもよりますが、サイズを 70% 以上削減できます。圧縮アルゴリズムを使用する場合、特にこれらの余分な圧縮パスを処理するために必要な追加の CPU 時間を考慮すると、標準圧縮レベルと最大圧縮レベルの差はわずかです。これは、Web コンテンツを動的に圧縮する場合に非常に重要です。ほとんどのソフトウェア コンテンツ圧縮技術では、圧縮レベル 6 (9 レベルのうち) を使用して、CPU サイクルを節約します。通常、レベル 6 とレベル 9 のファイル サイズの違いは非常に小さいため、余分な時間を費やす価値はありません。
text/.* MIME タイプとして識別されるファイルの場合、ネットワーク上に配置する前にファイルに圧縮を適用できます。これにより、転送されるバイト数が減少し、パフォーマンスが向上します。テストでは、Microsoft Office および PostScipt ファイルを GZIP エンコードして、圧縮モジュールで転送できることも示されています。
GZIP エンコードできない重要な MIME タイプには、外部の JavaScript ファイル、PDF ファイル、および画像ファイルがあります。Javascript ファイルの問題は、主にブラウザー ソフトウェアのバグによるものです。これらのファイルは実際にはテキスト ファイルであり、転送用に圧縮することで全体的なパフォーマンスが向上するためです。PDF ファイルと画像ファイルは既に圧縮されており、再度圧縮しようとすると、サイズが大きくなり、ブラウザでレンダリングの問題が発生する可能性があります。
圧縮ファイルをクライアントに送信する前に、データを受信するクライアントが圧縮形式を正しく理解し、レンダリングすることをサーバーが保証することが重要です。圧縮されたコンテンツを理解するブラウザーは、次のクライアント要求ヘッダーのバリエーションを送信します。
Accept-encoding: gzip
Accept-encoding: gzip, deflate
現在の主要なブラウザには、送信するすべてのリクエストにこのメッセージのバリエーションが含まれています。サーバーがヘッダーを見て、圧縮されたコンテンツを提供することを選択した場合、サーバー応答ヘッダーで応答する必要があります。
詳細については、次の記事を参照してください: http://www.linuxjournal.com/article/6802