session_cache_limiter

関数の概要

session_cache_limiterは、PHPのセッション開始時にクライアントのキャッシュ機能を制御するための関数です。この関数を使うことで、HTTPヘッダーのキャッシュ制御ポリシーを指定し、ブラウザやプロキシサーバーによるセッションデータのキャッシュ動作を調整できます。主にセキュリティ面や動的コンテンツの正しい表示に役立ちます。

パラメータの説明

  • $cache_limiter (文字列型, 任意) : 設定したいキャッシュ制御の種類を指定します。指定しない場合は現在の設定値を返します。

主な指定可能値は以下の通りです。

  • "public" : レスポンスを公開キャッシュ可能にします。
  • "private" : プライベートキャッシュ。ユーザーのブラウザのみキャッシュを許可します。
  • "private_no_expire" : private と似ていますが、Expiresヘッダーを送信しません。
  • "nocache" : キャッシュを無効化します。デフォルト値です。
  • "" (空文字) : キャッシュ制御ヘッダーを送信しません。

戻り値

現在設定されているキャッシュリミッター名(文字列)を返します。引数に値を渡すと新たな値に設定し、その新しい設定を返します。

使用例

基本的な使い方

<?php
// セッションのキャッシュ制御を"nocache"に設定
session_cache_limiter("nocache");
session_start();
?>

この例では、セッション開始前にキャッシュ制御を「nocache」に設定し、ブラウザのキャッシュを無効化しています。これにより、ページがキャッシュされず常に最新の状態が表示されます。

キャッシュをブラウザにのみ許可する例

<?php
session_cache_limiter("private");
session_start();
?>

この設定はブラウザだけがキャッシュを持てるようにしつつ、共有プロキシなどではキャッシュされないようにします。ログイン画面など個人情報を扱うページに便利です。

キャッシュ制御ヘッダーを完全に送信しない例

<?php
session_cache_limiter("");
session_start();
?>

空文字を指定すると、セッション開始時にキャッシュ制御ヘッダーを送信しません。既存のキャッシュポリシーを維持したいケースで使われます。

関連する関数

  • session_start() – セッションを開始する関数。
  • session_cache_expire() – セッションキャッシュの有効期限を取得または設定。
  • session_set_cookie_params() – セッションのクッキーの設定を行う。

まとめ

session_cache_limiterはPHPのセッションにおけるHTTPキャッシュの挙動をコントロールする重要な関数です。ウェブアプリケーションのセキュリティ向上やユーザビリティ確保のために適切なキャッシュ制御が必要となるケースは多いため、用途に合わせて値を設定しましょう。セッション開始前に設定する必要があり、他のセッション関連関数と組み合わせて運用することが推奨されます。