サーバから送信するWebページを圧縮する

互換モジュールの全般設定(1)の中に、「gzip圧縮を使用する」というオプションがあります。ここをONにすると何が起きるのかを調べてみると、Legacy_RenderSystem::showXoopsHeader()で、ob_start()の代わりにob_start('ob_gzhandler')を呼び出しています。でもこの関数は@deprecatedとなっていて、いまは使われていない様子。つまりこのオプションはXCL2.2.2では無効?

そこで、別のやり方を探しました。PHPの圧縮を担うzlibモジュールの実行時設定を読むと、zlib.output_compressionというオプションが見つかりました:

透過的なページ圧縮を行うかどうか。php.ini または Apache の設定でこのオプションが、"On" に設定された場合、 ブラウザが "Accept-Encoding: gzip" または "deflate" ヘッダを送信する場合に、ページは圧縮されます。 "Content-Encoding: gzip" (および "deflate") と "Vary: Accept-Encoding" ヘッダが出力に追加されます。 

さっそく、簡単なテストプログラムを用意して試してみます。

<?php phpinfo() ?>

 

まずは普通に表示させます。下の画面はGoogle ChromeのDeveloper Toolsから。
phpinfo()は約55KBのテキストを生成しています。

before compression

次に、php.iniに zlib.output_compression = Onの1行を加えてページを更新。

9.9/54.6 = 18%に圧縮されました。転送時間も、この1回では何とも言えませんが、大幅に短縮されています。


  1. XOOPS_URL/modules/legacy/admin/index.php?action=PreferenceEdit&confcat_id=1

友達に伝える
タグ: XOOPS PHP
作成: 2013/9/22 by:koji
更新: 2013/9/24 by:koji


新規文書の登録時だけブロックキャッシュをクリアする

Tech

Cool URI を利用するためにhtaccessを修正する

新規ユーザー登録(無料)

  • メールニュース[週刊起-動線]の購読
  • コメントなどの投稿
  • ココロミの利用
  • 一部コンテンツの購読

ログイン

コメント

タグ(キーワード)