session_cache_limiterは、PHPのセッション関連の構成項目です。セッションデータがブラウザに送信される前に、PHPがHTTPヘッダーにキャッシュ制御情報を設定する方法を制御します。デフォルトでは、PHPセッションは新しいセッションIDを生成し、要求するたびにクライアントに送信するため、不必要なキャッシュを避けるためにキャッシュポリシーを管理する必要があります。
この構成項目の主な機能は、クライアントがセッションデータをキャッシュするときにHTTPキャッシュヘッダー情報を処理する方法を制御することです。 Session_cache_limiterを合理的に構成することにより、開発者はセッションデータのキャッシュポリシーを明確にし、それによりセッションデータのクライアントブラウザーのキャッシュ動作を制御できます。
PHPにはsession_cache_limiterにいくつかの一般的に使用されるキャッシュ戦略があります。以下では、これらの戦略とその使用シナリオを1つずつ紹介します。
キャッシュなし
注: NOキャッシュに設定すると、PHPはキャッシュコントロール:ノーキャッシュとプラグマ:応答ヘッダーにノーキャッシュを送信し、クライアントがセッションデータをキャッシュしてはならないことを示します。リクエストが行われるたびに、クライアントは新しいセッションデータを要求します。
使用法シナリオ:オンライン決済、ショッピングカート、ユーザーデータのリアルタイム処理を必要とするその他のシステムなど、すべてのリクエストがすべてのリクエストを取得することが厳密に保証されているシナリオに適しています。
プライベート
説明:プライベートに設定すると、セッションデータは現在のユーザーのブラウザに対してのみ有効であり、他の場所で共有またはキャッシュされません。応答ヘッダーには、キャッシュ制御:プライベートが含まれます。
使用シナリオ:ユーザーの個人情報ページなど、ユーザー間でキャッシュを分離する必要がある特定のシナリオに適用され、各ユーザーがアクセス時に独立したセッションデータを確保するようにします。
公共
説明:公開に設定すると、セッションデータを公開し、すべてのユーザーがセッションデータをキャッシュできることを意味します。応答ヘッダーには、キャッシュ制御:publicが含まれます。
シナリオの使用:公開情報表示ページ(ユーザーログインを伴わない製品リストページなど)など、機密情報を伴わないパブリックページに適用できます。
ノーキャッシュ
注: Nocacheに設定すると、PHPはCache-Control:No-Storeと同様の手順を返します。これは、ブラウザにコンテンツをキャッシュしないことを明確に通知します。この戦略はノーキャッシュに似ていますが、より厳しいものです。
使用法シナリオ:オンラインバンキング、個人アカウントページなど、ユーザーデータがブラウザによってキャッシュされるのを防ぐ必要があるアプリケーションなど、セキュリティ要件が高いシナリオに適用できます。
PHPでは、 session_cache_limiterキャッシュポリシーをsession_cache_limiter()関数を介して取得または設定できます。構文は次のとおりです。
<span><span><span class="hljs-title function_ invoke__">session_cache_limiter</span></span><span>([</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$cache_limiter</span></span><span>]);
</span></span>
パラメーターが渡されない場合、 session_cache_limiter()は現在のキャッシュポリシーを返します。
キャッシュポリシーが渡された場合、PHPは新しいキャッシュポリシーを設定します。
たとえば、次のコードはsession_cache_limiterをプライベートに設定します。
<span><span><span class="hljs-title function_ invoke__">session_cache_limiter</span></span><span>(</span><span><span class="hljs-string">'private'</span></span><span>);
</span></span>
リアルタイム更新システム<br> オンラインショッピング、支払いプロセス、リアルタイムチャットなど、セッション情報のリアルタイム更新が必要な一部のシステムの場合、ノーキャッシュやノーキャッシュを使用することをお勧めします。これにより、データの有効期限または一貫性のないキャッシュの問題を回避して、最新のセッション情報がリクエストごとに取得されることが保証されます。
ユーザープライバシーページ<BR> 個人情報ページ、アカウント設定などのユーザープライベートデータを含むページの場合、プライベートを使用することをお勧めします。これにより、データが現在のユーザーにのみ表示され、他のユーザーのブラウザーによってキャッシュまたは共有されないことが保証されます。
パブリックディスプレイページ<br> 機密データ(製品リスト、ニュースページなど)を必要としないパブリックページの場合、パブリックを使用できます。ブラウザはこのコンテンツをキャッシュし、要求するたびに同じデータをロードすることを避けることができるため、これによりページの読み込み速度が向上します。
高い安全要件を持つアプリケーション<br> オンラインバンキング、財務管理システムなどの高いセキュリティ保証が必要なアプリケーションでは、ブラウザがセッションデータのキャッシュを防ぐためにノーキャッシュまたはノーキャッシュを推奨します。これにより、セッションデータのセキュリティが確保されます。