mod_deflate

mod_deflateは、 Apache HTTP Server(Apache v2.0以降)のオプションモジュールです。LZ77アルゴリズムとハフマン符号化を組み合わせたDeflateロスレスデータ圧縮アルゴリズムに基づいています。このモジュールは、Apache HTTP Serverからの出力をネットワーク経由でクライアントに送信する前に圧縮するためのDEFLATE出力フィルタを提供します。また、gzip圧縮されたレスポンスボディを解凍展開伸張)するためのフィルタも提供します。[ 1 ]

制限

mod_deflateモジュールにはファイルサイズの下限がないため、圧縮のメリットが得られないほど小さいファイルも圧縮しようとします。その結果、約120バイト未満のファイルは、mod_deflateで処理するとサイズが大きくなります。

互換性

サーバーが圧縮データを送信しているかどうか、またブラウザの圧縮互換性については、たとえばここ で確認できます。

テキスト コンテンツを mod_gzip を使用して圧縮する場合、推奨されるメディア タイプに従って MIME タイプを維持する必要があります。

  • HTML: テキスト/html
  • XHTML: アプリケーション/xhtml+xml
  • CSS: テキスト/css
  • JavaScript: application/x-javascript

代替案

mod_gzipモジュールは、Apache v1 および v2 の mod_deflate に似ています。

mod_gzモジュールは、Ian Holsman氏によって独立して開発されました。このモジュールはApache 2.0用のgzip圧縮フィルタを実装しており、mod_gzipと同様の機能を提供します。2つのモジュールの重要な違いは、mod_gzipには独自のgzip実装が含まれているのに対し、mod_gzは外部のzlibライブラリに依存していることです。

PHPでは、次のように PHP スクリプトの出力で同様の効果を実現できます。

  • ob_gzhandler ()およびgzencode()関数。
  • php.ini ファイルの zlib.output_compression オプション。

CherryPyはPython標準ライブラリのzlibモジュールを使用するGzipフィルタ[ 2 ]提供しています。

ライセンス

mod_deflate モジュールは Apache v2 の一部であり、Apache License 2.0 でライセンスされています。

歴史

Apache のモジュール レベルのコンテンツ圧縮は、Apache 1.3 以降、外部拡張モジュールである mod_gzipによって開始されました。

Apache 2.0.xサーバーの開発者は、同様のGZIPエンコード機能を実行するために、サーバーのコードベースにmod_deflateを組み込みました。初期のバージョンでは、mod_gzipよりも圧縮率が低くなっていました。[ 3 ]

Apache 2.0.45以降、mod_deflateの圧縮レベルはDeflateCompressionLevelディレクティブを使用して設定できます。このディレクティブは1(圧縮速度が最も速く、圧縮率が最も低い)から9(圧縮速度が最も遅く、圧縮率が最も高い)までの値を受け付け、デフォルト値は6です。この変更により、mod_deflateの圧縮レベルは、そのままでmod_gzipに匹敵するようになりました。

参照

注記