Web サーバから送出されるコンテンツを gzip 圧縮することで、転送量の削減とサイトのレスポンス向上が期待できます。最近の Web ブラウザであれば、この gzip 圧縮転送に対応しているものが多いので、導入を検討する価値は十分にあると思います。特に PHP でサイトを構築されているのであれば、スクリプトに数行書き加えるだけで簡単にこれを実現できます。
PHP で記述された各ページの最初に以下のように追記するだけです。ob_start
は PHP によって出力されるコンテンツを一旦、バッファに溜め置くことを指示します。また、ここで
ob_gzhandler
を指定することで、バッファのコンテンツを gzip 圧縮するよう指示しています。ob_gzhandler
は Web ブラウザからのリクエストを適切に判断して、gzip 圧縮転送に対応していないブラウザに対しては、コンテンツをそのまま返すようになっています。
<?php ob_start ("ob_gzhandler"); ?>
亜細亜ノ蛾を参考に、このサイトでもトップページや個々の記事などの殆ど全てのページで圧縮転送を有効にしてみました。MovableTypeでは各アーカイブテンプレートの最初に上のコードを書き足して再構築します。
上の図は圧縮転送を有効にする前後での転送量の変化を示したグラフになります。一日あたりの転送量について数値の変化を見ると、圧縮転送の導入前で平均118,720KBytesだったものが、導入後には平均90,775KBytesと、ほぼ 3/4 になりました。サイトの訪問者数(Sites, Visits)や閲覧数(Pages,Files,Hits)にはほぼ変化がありませんから、圧縮転送によって転送量が削減されたと考えることができます。これはなかなか効果覿面です。
是非、お試しあれ。
今度は gzip 圧縮動作がサーバの CPU リソースを消費するため、キャッシュを生成したり If-Modified-Since
ヘッダを考慮するなどの施策も必要です。