HTTP/1.1 ではデータを
gzip
で圧縮して送信することで転送量を減らすことができます。一般に Apache Web サーバでは
mod_deflate モジュール
を導入してこれを実現することが多いのですが、
レンタルサーバなどでは mod_deflate が導入されていないことが多々あります。
それでもコンテンツネゴシエーションに対応した Web サーバであれば、
gzip で圧縮されたファイル(*.gz)を予め用意しておくことで、
この恩恵に与ることがことが期待できます。
そこで、MovableType で生成したコンテンツを gzip 圧縮するためのプラグインを作ってみました。
|
CompressGZip.pl
ver.1.00, '07/03/04, MovableType 3.34 で動作確認、Compress:Zlib 必須
|
最新版のダウンロードやバグレポートはCompressGZip の trac レポジトリでも行っています。
CompressGZip が表示されていることを確認します
静的なコンテンツを生成するようなテンプレートに使用できます。
PHP(*.php) や SSI(*.shtml) を生成するような場合には使用できません。
例えば、既存のインデックスページ(index.html)を圧縮するような場合、
テンプレート全体を <MTCompressGZip> コンテナタグで囲んだ上で、
出力ファイル名を index.html.gz とします。
<MTCompressGZip> コンテナタグの前後には余計な空白や改行があってはいけません。
ここで、gzip 圧縮されたファイルの転送に対応している Web ブラウザなどで index.html にアクセスすると、Web サーバのコンテンツネゴシエーションによって、 index.html.gz が使われることになります。
注意する点として,このプラグインは,MovableType で gzip 圧縮されたファイル(*.gz)を生成するだけで,Web サーバが送出する段階で都度データを圧縮するものではありません。 そのため,常に同じ内容を返す静的なコンテンツにのみ適用することができ, PHP などの動的ページを index.php.gz などと生成しても, Web サーバは *.php.gz を処理できずにエラーを返します。
当サイトでは,CSS と RSS1.0 について,このプラグインによる圧縮を施しており,
概ね CSS は 20〜30%,RSS1.0 は 30% 程度のファイルサイズに圧縮されています。
殆どのページが PHP による動的生成に頼っているサイトでは効果の程は薄いかもしれません。