LoginSignup
48
50

More than 5 years have passed since last update.

ChromeとSafariで"Cache-Control: no-cache"が効かなかった

Last updated at Posted at 2015-05-19

Webページのキャッシュを残さないようにしたとき四苦八苦したので備忘録として書いてきます。

とりあえず問題としては2種類あった。

問題1

ブラウザバック時に問題があったのでキャッシュを残さないようにしようとした。

最初は下記の通りにPHP側で設定してた。

cache.php
<?php
header("Cache-Control: no-cache");
header("Pragma: no-cache");

これだとChromeとSafariでは残るらしく、ブラウザバックでキャッシュからページを表示していた。なので、ググってみたところ下記のようにヘッダーを設定すればいいよという内容を見つけたので修正。

cache.php
<?php
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

で、ChromeとSafariで確認するとちゃんとキャッシュが残らないようになっていた。

問題2

問題1の対応をした後、iOS7のSafari7で確認するとページがキャッシュを使って表示されていた。

原因としては過去のキャッシュが残っていただけだったのだが、それに気づくのに小一時間ほどかかった。。。

どうもURLをキーにしてキャッシュを取り出しているのか、キャッシュを残さないようにしても過去のキャッシュが残っていればそれを使ってページを表示するっぽい。

48
50
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
48
50