PHPでコンテンツをgzip圧縮転送する

Posted by
ぴろり
Posted at
2007/06/14 20:56
Trackbacks
関連記事 (0)
Post Comment
コメントできます
Category
電算室

  サーバから送出されるコンテンツを gzip 圧縮することで 転送量の削減とサイトのレスポンス向上が期待できます。 最近の であれば,この gzip 圧縮転送に対応しているものが多いので, 導入を検討する価値は十分にあると思います。 特に でサイトを構築されているのであれば, スクリプトに数行書き加えるだけで簡単にこれを実現できます。

この記事をはてなブックマークに追加する この記事のはてなブックマーク数 | この記事をlivedoorクリップに追加する この記事のlivedoorクリップ数 | この記事をYahooブックマークに追加する この記事のYahoo!ブックマーク数 | この記事をdel.icio.usに追加する

方法

  で記述された各ページの最初に以下のように追記するだけです。 ob_start によって出力されるコンテンツを一旦,バッファに溜め置くことを指示します。 また,ここで ob_gzhandler を指定することで,バッファのコンテンツを gzip 圧縮するよう指示しています。 ob_gzhandler からのリクエストを適切に判断して, gzip 圧縮転送に対応していないに対しては, コンテンツをそのまま返すようになっています。

効果のほどは?

 亜細亜ノ蛾を参考に,このサイトでもトップページや個々の記事などの殆ど全てのページで圧縮転送を有効にしてみました。 では各アーカイブの最初に上のコードを書き足して再構築します。

 上の図は圧縮転送を有効にする前後での転送量の変化を示したグラフになります。 一日あたりの転送量について数値の変化を見ると, 圧縮転送の導入前で平均118,720KBytesだったものが, 導入後には平均90,775KBytesと,ほぼ 3/4 になりました。 サイトの訪問者数(Sites, Visits)や閲覧数(Pages,Files,Hits)にはほぼ変化がありませんから, 圧縮転送によって転送量が削減されたと考えることができます。 これはなかなか効果覿面です。
 是非,お試しあれ。

 今度は gzip 圧縮動作がサーバの CPU リソースを消費するため, キャッシュを生成したり If-Modified-Since ヘッダを考慮するなどの施策も必要です。


この記事を読んだ人はこんな記事も読んでいます ?

その他の関連する記事


関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事のトラックバック URL

コメントを投稿する

 (必須/公開)
 (必須/非公開)
 

コメントスパム防止のため投稿前に ランダムな数字 ? を入力してから投稿してください。 お手数ですがご協力のほど宜しくお願いいたします。(必須)