ホームページ  >  記事  >  バックエンド開発  >  PHP の HTTP キャッシュ ヘッダーを使用して Web サイトのパフォーマンスを向上させる方法?

PHP の HTTP キャッシュ ヘッダーを使用して Web サイトのパフォーマンスを向上させる方法?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-04 11:13:02475ブラウズ

How to Improve Website Performance with HTTP Cache Headers in PHP?

パフォーマンスを最適化するために HTTP キャッシュ ヘッダーを実装する方法

動的 Web ページが主に静的コンテンツで構成されるシナリオでは、PHP で HTTP キャッシュ ヘッダーを適用すると、Web サイトのパフォーマンスが大幅に向上します。 。このガイドでは、効果的なキャッシュに必要なヘッダーについて詳しく説明します。

キャッシュ制御ディレクティブ

cache-control: private, max-age=180 - プライベート キャッシュを設定します。 180秒。プライベート キャッシュには個々のユーザーのみがアクセスでき、複数のクライアント間で共有することはできません。

cache-control: public, max-age=180 - パブリック キャッシュを 180 秒間設定します。パブリック キャッシュはすべてのクライアントで使用でき、共有アクセスが可能です。

HTTP 日付および ETag 応答ヘッダー

最終更新日: GMT 日付と時刻 - 日付と時刻を提供します。コンテンツが最後に変更されたとき、ブラウザが更新を確認できるようにします。

ETag: (一意の識別子) - コンテンツの一意の状態を表すハッシュまたはチェックサムを生成します。ブラウザは ETag ヘッダーを使用して、最後のリクエスト以降にコンテンツが変更されたかどうかを確認します。

キャッシュ検証ヘッダー

If-Modified-Since: GMT 日時 - クライアントはリソースの既知の最終変更日。その日付以降に変更がなかった場合、サーバーは 304 Not Modified ステータスで応答し、不必要なコンテンツの取得を回避します。

If-None-Match: (一意の識別子) - クライアントリソースの最後の既知の ETag 値を送信します。 ETag がサーバーの現在の値と一致する場合、304 Not Modified ステータスが返されます。

PHP による実装

これらのヘッダーを 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。