ChromeとSafariで"Cache-Control: no-cache"が効かなかった
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をキーにしてキャッシュを取り出しているのか、キャッシュを残さないようにしても過去のキャッシュが残っていればそれを使ってページを表示するっぽい。
Author And Source
この問題について(ChromeとSafariで"Cache-Control: no-cache"が効かなかった), 我々は、より多くの情報をここで見つけました https://qiita.com/tokino/items/2f1e579ca836459d21a8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .