ホームページ php教程 php手册 PHP は Apache 環境で HTTP キャッシュ プロトコルの原理分析とアプリケーション分析を使用します

PHP は Apache 環境で HTTP キャッシュ プロトコルの原理分析とアプリケーション分析を使用します

Jun 13, 2016 pm 12:18 PM
apache http php 分析する 利用 プロトコル 原理 応用 環境 キャッシュ 解析する 静的 ページ

静的ページ用の Etag もあります。

1. 最初の状況を見てみましょう: Apache 静的ページ

Apache によってクライアントに送信される静的ページには、通常、これら 2 つのタグが含まれています。値は、静的ファイルの変更時刻と i ノードから取得されます。

以下は、Apache によってクライアントに返されるヘッダーのインターセプトです

XML/HTML コード

コードをコピーコードは次のとおりです。


Last-Modified: Fri, 26 Jan 2007 01:53:34 GMT
ETag: "3f9f640-318-cb9f8380"


検索エンジンが静的ファイルを好む理由 この 2 つのロゴにより、ファイルが更新されたかどうかが判断できます

2. PHP などの動的ページ

PHP は動的に生成され、その内容は PHP プログラムの時間に基づいて決定されるため、デフォルトでは、クライアントに戻るときに PHP にはキャッシュ制御が含まれません。キャッシュを有効に活用したい場合は、 b と s を削減し、帯域幅トラフィックを削減し、サーバー負荷を軽減するには、キャッシュ メカニズムを理解し、インタラクションを管理する必要があります。メリットはたくさんあります。

3. キャッシュ制御の具体的な意味

まず、私がテストして理解したこれらのタグの意味を説明します

キャッシュ制御: 指定しますリクエストとレスポンスが続くキャッシュ メカニズム。要求メッセージまたは応答メッセージで Cache-Control を設定しても、別のメッセージの処理中のキャッシュ プロセスは変更されません。リクエスト中のキャッシュ命令には、no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached が含まれ、応答メッセージ内の命令には、public、private、no-cache、no が含まれます。 -store、no-transform、must-revalidate、proxy-revalidate、max-age。

各メッセージの指示の意味は次のとおりです。

パブリックは、応答を任意のキャッシュ領域にキャッシュできることを示します。

プライベートは、単一ユーザーの応答メッセージの全部または一部が共有キャッシュで処理できないことを示します。これにより、サーバーは、他のユーザーのリクエストには無効なユーザーからの部分的な応答のみを記述することができます。

no-cache は、要求または応答メッセージをキャッシュできないことを示します。

no-store は、重要な情報が意図せずに公開されるのを防ぐために使用されます。リクエスト メッセージで送信すると、リクエスト メッセージと応答メッセージの両方でキャッシュが使用されます。

max-age は、クライアントが指定された時間 (秒) を超えない存続期間を持つ応答を受信できることを示します。

min-fresh は、クライアントが現在時刻に指定された時間を足したものよりも短い応答時間で応答を受信できることを示します。

max-stale は、クライアントがタイムアウト期間を超えて応答メッセージを受信できることを示します。 max-stale メッセージの値を指定すると、クライアントは指定されたタイムアウト期間の値を超える応答メッセージを受信する可能性があります。

php の使用法:

出力前に header() を使用します (ob_start() を使用する場合は、プログラム内のどこにでもヘッダーを配置できます)

PHP コード

コードをコピーします コードは次のとおりです:


header('Cache-Control: max-age=8'); >

max-age=8 は、最大有効期間が 8 秒であることを意味します。8 秒を超えると、ブラウザはサーバーにアクセスして再度読み取る必要があります。この時間は、ユーザーがページを読んだ時点から開始されます。 Expires は絶対的な時間です。

Expires: キャッシュの有効期限が切れる絶対時間。指定された時点を過ぎると、ブラウザはキャッシュを認識せず、サーバーにアクセスして最新のキャッシュを再度リクエストします。

Last-Modified: ドキュメントの最終変更時刻は次のとおりです。 1

静的ファイルの場合、クライアントはキャッシュ内の時刻を送信し、Apache は時刻を送信します。変更がないことが判明した場合は、ステータス コードが 304 で、バイト数が非常に少ないため、ヘッダーが直接返されます (上級バージョンでは、ファイルに変更があるかどうかを判断するための比較 Etag も追加されます)。変更されました)

2 PHP 動的ファイル:

クライアントは比較時間を送信し、PHP がそれを変更するかどうかを決定します。変更時間が同じ場合、1024 バイトのみが返されます。なぜ 1024 が返されるのかは不明ですが、PHP で生成されたファイルが非常に大きい場合は 1024 のみが返されるため、クライアントは送信された変更時刻に基づいてキャッシュ ファイルから自動的に表示します。サーバー。

注: Cache-Control と Expires は Last-Modified ヘッダーなしでも機能しますが、各リクエストは 1024


4 ではなく、実際のファイル バイト数を返す必要があります。
静的ページのキャッシュをより適切に制御したい場合、Apache には適切に制御できるモジュールがいくつかありますが、ここでは説明しません

php ページ:

ここには 2 つのタイプがあります:

1. ニュースリリースと同様、頻繁に変更されないページ。最初のリリース後、何度か変更を加えても、基本的には時間が経っても修正されません。制御戦略は次のとおりです。 1. 最初のリリースに対して Last-Modified を送信し、max-age を 1 日に設定し、変更後に Last-Modified を更新します。max-age 時間は変更の数に応じて通常になります。これはさらに面倒に思えますが、変更の数を記録する必要があります。次に変更される可能性のある時刻を予測し、Expires を使用して

PHP コード

コードをコピー コードは次のとおりです:


//header('Cache-Control: max-age=86400');// 1 日分のキャッシュ
header('Expires: Mon, 29 Jan 2007 08:56:01 GMT') ;/ /有効期限を指定します
header('Last-Modified: '.gmdate('D, d M Y 01:01:01',$time).'GMT');//グリニッジ時間、$time はファイルが追加された時刻 タイムスタンプ


2 頻繁に変更されるページ

は、BBS やフォーラム プログラムに似ており、キャッシュの主な機能は、更新を高速化することです。ユーザーが頻繁にリストを更新してサーバーに負荷をかけることは避けられます。データベースへの負担は、更新の適時性を確保するだけでなく、キャッシュを確実に利用できるようにする必要があります。

これは通常、キャッシュ制御によって制御されます。 max-age は、フォーラムへの投稿頻度に応じて柔軟に制御できます。

PHP コード

コードをコピー コードは次のとおりです。


header('Cache-Control: max-age =60');//1 分間キャッシュします
header('Last-Modified: '.gmdate('D, d M Y 01:01:01',$time).'GMT');/ /グリニッジ時間、$time は投稿の最終更新タイムスタンプです


追加の 5 つ

1 更新、移動、強制更新の違い

ブラウザ 一部のブラウザでは、Ctrl F5 を使用してページを強制的に更新できます。これらの違いは何ですか?

Go to: ユーザーがリンクをクリックすると、そのリンクに移動します。Last-Modified がある場合は、サーバーと通信しません。キャプチャ ツールを使用して、送信されたバイトが 0 バイトであることを確認します。キャッシュの有効期限が切れると、F5 リフレッシュ アクションが実行されます。

更新 (F5): この更新も、キャッシュに最終更新日時があるかどうかに基づいて決定され、最終更新時刻がない場合は 304 または 1024 (php) に転送されます。サーバーにアクセスして読み取り、真の値を返します。 ドキュメント サイズ

強制更新: キャッシュ メカニズムを完全に放棄し、サーバーにアクセスして最新のドキュメントを読み取り、次のようにヘッダーをサーバーに送信します。 🎜>
XML/HTML コード

コードをコピー コードは次のとおりです:

キャッシュ制御: no-キャッシュ

2 つのデバッグ ツール

ブラウザーの表示とサーバー インタラクションのためのより優れたツールは httpwatch pro (現在のバージョン 4.1) で、ie7 をサポート

他にもプロキシ パケットがあります分析できるキャプチャ ツール、http デバッグ。これまで使用したことはありませんでしたが、2000 に付属のネットワークである tcp パケット キャプチャ ツールもあります。 2000 に付属のネットワーク モニタは http 専用ではありませんが、使い方が難しいです。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP:データベースとサーバー側のロジックの処理 PHP:データベースとサーバー側のロジックの処理 Apr 15, 2025 am 12:15 AM

PHPはMySQLIおよびPDO拡張機能を使用して、データベース操作とサーバー側のロジック処理で対話し、セッション管理などの関数を介してサーバー側のロジックを処理します。 1)MySQLIまたはPDOを使用してデータベースに接続し、SQLクエリを実行します。 2)セッション管理およびその他の機能を通じて、HTTPリクエストとユーザーステータスを処理します。 3)トランザクションを使用して、データベース操作の原子性を確保します。 4)SQLインジェクションを防ぎ、例外処理とデバッグの閉鎖接続を使用します。 5)インデックスとキャッシュを通じてパフォーマンスを最適化し、読みやすいコードを書き、エラー処理を実行します。

PHPの目的:動的なWebサイトの構築 PHPの目的:動的なWebサイトの構築 Apr 15, 2025 am 12:18 AM

PHPは動的なWebサイトを構築するために使用され、そのコア関数には次のものが含まれます。1。データベースに接続することにより、動的コンテンツを生成し、リアルタイムでWebページを生成します。 2。ユーザーのインタラクションを処理し、提出をフォームし、入力を確認し、操作に応答します。 3.セッションとユーザー認証を管理して、パーソナライズされたエクスペリエンスを提供します。 4.パフォーマンスを最適化し、ベストプラクティスに従って、ウェブサイトの効率とセキュリティを改善します。

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

なぜPHPを使用するのですか?利点と利点が説明されました なぜPHPを使用するのですか?利点と利点が説明されました Apr 16, 2025 am 12:16 AM

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

PHPとPython:彼らの歴史を深く掘り下げます PHPとPython:彼らの歴史を深く掘り下げます Apr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPの影響:Web開発など PHPの影響:Web開発など Apr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHP対Python:ユースケースとアプリケーション PHP対Python:ユースケースとアプリケーション Apr 17, 2025 am 12:23 AM

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

See all articles