端くれプログラマの備忘録 Webサイト制作 [Webサイト制作] HTTPレスポンスのExpiresを考察する

[Webサイト制作] HTTPレスポンスのExpiresを考察する

CSSを変更してディプロイしてもページの体裁が変わらない。ブラウザでF5キーで強制リロードすると体裁が変わる。と、デザイナから報告あり。たぶんブラウザのキャッシュに関係した問題。

まずはHTMLのMETAタグにキャッシュ絡みの記述が無いか探すが見つからず。

次はHTTPレスポンスのダンプ。

http://example.com/css/styles.css

Cache-Control:"public, max-age=315360000"
Date:"Wed, 10 Feb 2016 19:05:33 GMT"
Etag:""56b913a1-b8c4""
Expires:"Thu, 31 Dec 2037 23:55:55 GMT"
Last-Modified:"Mon, 08 Feb 2016 22:16:01 GMT"
Server:"nginx/1.4.1"

http://example.com/images/pic1.jpg

Cache-Control:"public, max-age=315360000"
Date:"Wed, 10 Feb 2016 19:09:42 GMT"
Etag:""56abfd63-e04d""
Expires:"Thu, 31 Dec 2037 23:55:55 GMT"
Last-Modified:"Sat, 30 Jan 2016 00:01:39 GMT"
Server:"nginx/1.4.1"

Expiresの315360000秒(10年)は長すぎないか。試しにjQueryを調べる。

http://code.jquery.com/ui/1.10.3/jquery-ui.js

Access-Control-Allow-Origin:"*"
Cache-Control:"max-age=315360000, public"
Connection:"keep-alive"
Content-Encoding:"gzip"
Content-Type:"application/javascript; charset=utf-8"
Date:"Wed, 10 Feb 2016 19:09:00 GMT"
Etag:""54499a48-6a684""
Expires:"Thu, 31 Dec 2037 23:55:55 GMT"
Last-Modified:"Fri, 24 Oct 2014 00:16:08 GMT"
Server:"NetDNA-cache/2.2"
Vary:"Accept-Encoding"
X-Cache:"HIT"

jQueryもExpiresは10年だった。だけどjQueryはバージョンごとに凍結されているから、キャッシュを更新する心配はなさそう。自前のコードの場合はそうはいかないよな。鯖管の独断でExpiresを設定された弊害が出てる感じ。クレームしよ。

参考サイト

HTTPヘッダチューニング Expiresヘッダについて | REDBOX Labo
http://blog.redbox.ne.jp/http-header-expires.html

Expiresヘッダーを活用してサイトの読込速度を上げてみる | スマートフォン&モバイルEC事例ノウハウ集|モバイルファーストラボ
http://www.aiship.jp/knowhow/archives/20552