画像をキャッシュ
画像を使うことにしたので、
Apache の mod_expiresモジュール
http://httpd.apache.org/docs/2.2/ja/mod/mod_expires.html
を使いコンテンツの有効期限を長く設定することにより、クライアントでキャッシュしてもらうように設定。
インストール
sudo /usr/sbin/a2enmod expires sudo /usr/sbin/apache2ctl restart
画像サーバの設定ファイルに以下を追加
# cache control ExpiresActive On ExpiresByType image/png "access plus 1 month"
画像取得時にサーバから送られてくるヘッダーを見るとちゃんと、1ヶ月後になっていた。
Expires: Sat, 27 Jun 2009 12:40:03 GMT
しかし、キャッシュした画像があるページをリロードすると
HTTP/1.x 304 Not Modified Date: Thu, 28 May 2009 12:47:24 GMT Server: Apache Connection: Keep-Alive Keep-Alive: timeout=15, max=67 Etag: "24d39-1d3-b04f9000" Expires: Sat, 27 Jun 2009 12:47:24 GMT Cache-Control: max-age=2592000
のようにサーバから304を返してた!
そもそもアクセスすら発生しないと思ってた。
でも、リンクからアクセスを行うと画像をリクエストは発生しなかった。
ブックマークからのアクセスでも画像へのリクエストは発生しなかった。
シフトを押しながらF5では、当然だけど画像をキチンと返してた。
リロード | 304 |
---|---|
SHIFT + リロード | 200 |
ブックマークから | リクエストなし |
リンクから | リクエストなし |
こんな感じ。ちなみにffox3