動的 Web ページが主に静的コンテンツで構成されるシナリオでは、PHP で HTTP キャッシュ ヘッダーを適用すると、Web サイトのパフォーマンスが大幅に向上します。 。このガイドでは、効果的なキャッシュに必要なヘッダーについて詳しく説明します。
cache-control: private, max-age=180 - プライベート キャッシュを設定します。 180秒。プライベート キャッシュには個々のユーザーのみがアクセスでき、複数のクライアント間で共有することはできません。
cache-control: public, max-age=180 - パブリック キャッシュを 180 秒間設定します。パブリック キャッシュはすべてのクライアントで使用でき、共有アクセスが可能です。
最終更新日: GMT 日付と時刻 - 日付と時刻を提供します。コンテンツが最後に変更されたとき、ブラウザが更新を確認できるようにします。
ETag: (一意の識別子) - コンテンツの一意の状態を表すハッシュまたはチェックサムを生成します。ブラウザは ETag ヘッダーを使用して、最後のリクエスト以降にコンテンツが変更されたかどうかを確認します。
If-Modified-Since: GMT 日時 - クライアントはリソースの既知の最終変更日。その日付以降に変更がなかった場合、サーバーは 304 Not Modified ステータスで応答し、不必要なコンテンツの取得を回避します。
If-None-Match: (一意の識別子) - クライアントリソースの最後の既知の ETag 値を送信します。 ETag がサーバーの現在の値と一致する場合、304 Not Modified ステータスが返されます。
これらのヘッダーを PHP で実装するには、次のサンプル コードを検討してください。
<code class="php">$tsstring = gmdate('D, d M Y H:i:s ', $timestamp) . 'GMT'; $etag = md5($language . $timestamp); $if_modified_since = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false; $if_none_match = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? $_SERVER['HTTP_IF_NONE_MATCH'] : false; if ((($if_none_match && $if_none_match == $etag) || (!$if_none_match)) && ($if_modified_since && $if_modified_since == $tsstring)) { header('HTTP/1.1 304 Not Modified'); exit(); } else { header("Last-Modified: $tsstring"); header("ETag: \"{$etag}\""); }</code>
以上がPHP の HTTP キャッシュ ヘッダーを使用して Web サイトのパフォーマンスを向上させる方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。