静的ページ用の Etag もあります。
1. 最初のケースを見てみましょう: Apache 静的ページ
Apache によってクライアントに送信される静的ページには、通常、Last-Modified タグと Etag が含まれており、これら 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: リクエストと応答が続くキャッシュ メカニズムを指定します。要求メッセージまたは応答メッセージで 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 秒を超える場合、ブラウザはこれを再度読み取る必要があることを意味します。 Expires はユーザーの読み取りページから開始する絶対時間です。
Expires: キャッシュの有効期限が切れる絶対時間。指定された時点を過ぎると、ブラウザはキャッシュを認識せず、サーバーにアクセスして最新のキャッシュを再度リクエストします。
Last-Modified: ドキュメントの最終変更時刻。その素晴らしい機能は次のとおりです: 1. 静的ファイルの場合、クライアントはキャッシュ内の時刻を送信し、存在することが判明すると、Apache がそれを比較します。変更なし、ヘッダーを直接返します。ステータス コードは 304 で、バイト数は非常に小さいです (上級バージョンでは、ファイルが変更されたかどうかを判断するための比較 Etag も追加されます)
2 PHP 動的ファイル:
クライアントが比較時間を送信すると、PHP は変更されたかどうかを判断します。変更時間が同じであれば、1024 バイトのみが返されます。なぜ 1024 バイトが返されるのかは不明です。非常に大きい場合は 1024 のみを返すため、クライアントはサーバーから送信された変更時刻に基づいて自動的に応答し、キャッシュ ファイルから表示されます。
注: Last-Modified ヘッダーがない場合、Cache-Control と Expires も機能しますが、各リクエストは 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 やフォーラム プログラムと同様に、この種のページは比較的早く更新されます。キャッシュの主な機能は、ユーザーがリストを頻繁に更新することを防ぐことであり、サーバー データベースに負担がかかることを保証する必要があります。更新の適時性とキャッシュのパフォーマンスが悪用されています
これは通常、Cache-Control によって制御され、フォーラムへの投稿の頻度に応じて最大有効期間を柔軟に制御できます。
PHP コード
コードをコピー コードは次のとおりです:
header('Cache-Control: max-age=60');//1 分間キャッシュします
header('Last-Modified: ' .gmdate(' D, d M Y 01:01:01',$time).'GMT');//グリニッジ時間、$time は投稿の最終更新タイムスタンプです
追加の 5 つ
1 リフレッシュの違い、go to、および強制更新
ブラウザーには、ctrl+F5 によるページの強制更新をサポートするボタンがあります。これらの違いは何ですか?
移動: ユーザーはリンクをクリックして移動します。Last-Modified がある場合は、パケット キャプチャ ツールを使用して、送信されたバイトを確認できます。キャッシュの有効期限が切れると、F5 リフレッシュ アクションが実行されます。
更新 (F5): この更新も、キャッシュに Last-Modified があるかどうかに基づいて決定され、存在する場合は 304 または 1024 (php) に転送されます。
強制更新: キャッシュメカニズムを完全に放棄し、サーバーにアクセスして最新のドキュメントを読み取り、次のようにヘッダーをサーバーに送信します
XML/HTML コード
コード コードは次のとおりです:
キャッシュ制御: キャッシュなし
2 デバッグ ツール
ブラウザとサーバー間の対話を表示するためのより良いツールは、httpwatch pro です。現在のバージョンは 4.1 で、サポートされています。 ie7。
分析や http デバッグができるプロキシ パケット キャプチャ ツールは他にもあります。これまで使用したことはありませんでしたが、2000 に付属のネットワークである tcp パケット キャプチャ ツールもあります。 2000 に付属のネットワーク モニタは http 専用ではありませんが、使い方が難しいです。
以上、apache struts2 Apache 環境における HTTP キャッシュプロトコルを利用した PHP の原理解析と応用解析を紹介しました。apache struts2 の内容も含めて、PHP チュートリアルに興味のある友人の参考になれば幸いです。

多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています

この記事では、Laravel Webフレームワークの通知システムを検討します。 Laravelの通知システムを使用すると、さまざまなチャネルでユーザーに通知を送信できます。今日は、通知ovを送信する方法について説明します


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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

メモ帳++7.3.1
使いやすく無料のコードエディター

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