HTTP レスポンスにある "Expires" ヘッダを上手く活用することで,サーバへの HTTP 問合せを減らし,サイトの表示を高速化することができます。特にバナー画像やアイコンなど,頻繁に変更されることの無いファイルについては、Expires ヘッダの活用によって、サイト表示の高速化やサーバ負荷の軽減が期待できます。
ところで,さくらインターネットのレンタルサーバ(スタンダードプラン)では,サーバに必要なモジュール(mod_expire)がインストールされておらずこの恩恵に預かれません。そこで,特定のディレクトリ以下にある画像ファイルについては,mod_rewrite と CGI を用いて Expires ヘッダを送出するようにしてみました。サーバを軽くする目的のために CGI を使うあたり,何か違うような気がしますが気にしないでおきましょう。
/site ディレクトリ以下にある画像ファイルについて,mod_rewrite モジュールを利用して処理を expires.cgi に任せるように指示を書き足します。
リクエストされたをファイルを開いて,その内容を返すだけの CGI スクリプトです。コンテンツの送出前に Expires ヘッダを追加しています。
ページで使用しているバナー画像や背景画像などについて,サーバへの問合せを行わなくなるのでページ表示の体感速度がかなり向上しました。反対に初回は全ての画像ファイルの読み込みに対して CGI が動作するので幾分表示が遅くなります。リピータの多いサイトや 1 ビジタあたりの訪問ページ数が多いサイトではその効果が大きく期待できます。