「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > HTTP キャッシュ ヘッダーはどのようにして PHP Web サイトのパフォーマンスを最適化できますか?

HTTP キャッシュ ヘッダーはどのようにして PHP Web サイトのパフォーマンスを最適化できますか?

2024 年 11 月 10 日に公開
ブラウズ:397

How can HTTP Cache Headers Optimize PHP Website Performance?

HTTP キャッシュ ヘッダーを使用して PHP ウェブサイトのパフォーマンスを最適化する

高度なキャッシュ システムやフレームワークが利用できるにもかかわらず、基本的な HTTP の実装が必要な場合があります。ヘッダーをキャッシュしてウェブサイトのパフォーマンスを向上させます。特に特定のキャッシュ機能が欠如している PHP 5.1.0 Web サイトの場合、ヘッダーは重要な役割を果たします。

PHP Web サイトの効果的なキャッシュ ヘッダー

効果的なキャッシュを有効にするには、次のことを考慮してください。次のヘッダー:

  • Last-Modified: ドキュメントの最終更新日を設定します。ブラウザは、この日付を使用して、コンテンツが最後にアクセスしてから変更されたかどうかを判断します。
  • ETag: ドキュメントの一意の識別子を指定し、ブラウザが最新バージョンをすでに持っているかどうかを確認できるようにします。
  • Expires: 絶対有効期限を設定します。
  • Cache-Control: ブラウザがドキュメントをキャッシュする方法と期間を制御します。誰でもドキュメントをキャッシュできるようにする「パブリック」に設定することも、個々のユーザーにキャッシュを制限する「プライベート」に設定することもできます。パブリック キャッシュを許可せずに、より長いキャッシュ長が必要な場合は、「private_no_expire」の使用を検討してください。

条件付きリクエストの実装

キャッシュ ヘッダーの設定に加えて、 、「If-Modified-Since」や「If-None-Match」などの条件付きリクエストを処理することが不可欠です。これらのリクエストにより、ブラウザはドキュメントが特定の日付以降に変更されたかどうか、または最後にアクセスしてから ETag が変更されたかどうかを確認できます。

コンテンツが変更されていない場合は、「304 Not Modified」ステータスを返すことができます。このコードは、ブラウザがキャッシュされたバージョンを引き続き使用できることを示します。この効率的なアプローチにより、不必要なダウンロードが最小限に抑えられ、Web サイトの読み込みが高速化されます。

次の PHP コード サンプルは、条件付きリクエストを処理する方法を示しています。

$timestamp = /* PHP script to generate a unique timestamp */;
$tsstring = gmdate('D, d M Y H:i:s ', $timestamp) . 'GMT';
$etag = $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}\"");
}

キャッシュ ヘッダーを実装し、条件付きリクエストを効果的に処理することで、PHP ウェブサイトのパフォーマンスとユーザー エクスペリエンスを大幅に向上させることができます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3