PHPとキャッシュ

【この記事の所要時間 : 約 3 分

ネットサーフィンをしていると、ブラウザの「戻る」ボタンをおすと、ブラウザの警告画面がでることがたまにある。ブラウザによって表現は違うが、「Webページの有効期限がきれています」とか「警告:ページの有効期限切れ」という文字列が表示される。
セッションを利用している場合のセキュリティなどを考慮した仕様ではあるが、ブラウザの「戻る」ボタンが押されると以前入力したデータが保持されたページを表示するためにPHPでは、以下のようにキャッシュ制御を行う必要がある。

session_cache_limiter(“public”);
session_start();

注意点としては、session_cache_limiter()関数は、session_start()関数より前に実行する必要があるということ。後に実行しても意味はない。
キャッシュ制御は、大きくわけると以下の3パターンになる。
1.public – プロキシとクライアント(ブラウザ)にキャッシュさせる。
2.private_no_expire – クライアント(ブラウザ)のみキャッシュさせる。
3.nocache – どこにもキャッシュさせない。
注意点としては、2と同じような機能でprivateというのもあるが、Mozillaのようなブラウザで混乱するので使わないこと!
header関数を使っても同じことができる。
キャッシュを無効にする場合は、以下の2行を記述するとよい。

header(“Cache-Control: no-cache”);
header(“Pragma: no-cache”);

1行目は、HTTP1.1対応で、2行目は、HTTP1.0対応である。
session_cache_limiter(“public”);と同じことをするならば、

header(“Cache-Control: public”);
header(“Pragma: public”);

とすればよい。1行目は、HTTP1.1対応で、2行目は、HTTP1.0対応である。

プログラミングPHP 第3版
プログラミングPHP 第3版

posted with amazlet at 15.11.19
Kevin Tatroe Peter MacIntyre Rasmus Lerdorf
オライリージャパン
売り上げランキング: 44,636
スポンサーリンク
レクタングル(大)広告
  • このエントリーをはてなブックマークに追加
スポンサーリンク
レクタングル(大)広告

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です