PHP_PHP チュートリアルで画像ブラウザーのキャッシュを設定する方法の概要
PHP を使用してブラウザのキャッシュを開く場合でも、Apache または iis サーバー環境を使用して設定する場合でも、ブラウザの Cache-Control に基づいて動作します。PHP で画像ブラウザのキャッシュを設定する方法を紹介します
Cache-。コントロール
キャッシュ制御は最も重要なルールです。このフィールドは、すべてのキャッシュ メカニズムが要求/応答チェーン全体で従う必要がある命令を指定するために使用されます。これらのディレクティブは、キャッシュによるリクエストや応答への悪影響を防ぐ動作を指定します。これらのディレクティブは通常、デフォルトのキャッシュ アルゴリズムをオーバーライドします。キャッシュ ディレクティブは一方向です。つまり、リクエストにディレクティブが存在しても、同じディレクティブが応答に存在するとは限りません。
キャッシュ制御の定義は次のとおりです: Cache-Control = "Cache-Control" ":" キャッシュ ディレクティブ。表 1 に適用可能な値を示します。
キャッシュディレクティブ | 手順 |
---|---|
公開 | すべてのコンテンツはキャッシュされます |
プライベート | コンテンツはプライベートキャッシュにのみキャッシュされます |
キャッシュなし | コンテンツはキャッシュされません |
無店舗 | キャッシュやインターネット一時ファイルにコンテンツはキャッシュされません |
必須再検証/プロキシ再検証 | キャッシュされたコンテンツが無効になった場合、再検証のためにリクエストをサーバー/プロキシに送信する必要があります |
max-age=xxx (xxx は数字) | キャッシュされたコンテンツは xxx 秒後に期限切れになります。このオプションは HTTP 1.1 でのみ使用でき、Last-Modified と一緒に使用すると優先度が高くなります |
クライアントがブラウザ経由で最初の URL リクエストを行うと、HTTP プロトコルの規定に従って、ブラウザはヘッダー (HTTP リクエスト ヘッダー) をサーバーに送信し、サーバーはそれに応答して関連する属性タグを記録します。 (HTTP 応答ヘッダー)。サーバーからの戻りステータスは 200 で、次のような形式になります:
コードは次のとおりです | コードをコピー |
HTTP/1.1 200 OK |
クライアントがこの URL を 2 度目にリクエストすると、HTTP プロトコルの規定に従って、ブラウザはサーバーにヘッダー (Http リクエスト ヘッダー) を送信し、サーバーはそれに応答し、関連するレコード属性タグ ファイルが作成されていないことを記録します。サーバーは、キャッシュからの読み取りから直接 304 を返します:
コードは次のとおりです | コードをコピー |
HTTP/1.x 304 は変更されていません |
1. Last-Modified、Expires、Etag に関連する動作原則
1.最終更新日
ブラウザが初めて URL をリクエストしたとき、サーバーから返されるステータスは 200 です。コンテンツはリクエストしたリソースであり、Last-Modified 属性マーク (このファイルの最終更新日時) があります。サービス終了時間と形式は次のようになります:
1 最終更新日: 火曜日、2009 年 2 月 24 日 08:01:04 GMT
クライアントがこの URL を 2 度目にリクエストすると、HTTP プロトコルの規定に従って、ブラウザは If-Modified-Since ヘッダー (HTTP リクエスト ヘッダー) をサーバーに送信して、この時点以降にファイルが変更されたかどうかを尋ねます。 :
1 If-Modified-From: 火曜日、2009 年 2 月 24 日 08:01:04 GMT
サーバー側のリソースが変更されていない場合、HTTP 304 (Not Changed.) ステータス コードが空の内容で自動的に返されるため、送信されるデータ量が節約されます。サーバー側のコードが変更されるか、サーバーが再起動されると、リソースが再発行され、最初のリクエストと同様のものが返されます。これにより、リソースがクライアントに繰り返し送信されなくなり、サーバーが変更されたときにクライアントが最新のリソースを取得できるようになります。
注: If-Modified-Since の時刻がサーバーの現在時刻 (現在のリクエスト時刻 request_time) より遅い場合、不正なリクエストとみなされます
2. Etagの動作原理
HTTP プロトコル仕様では、ETag を「要求された変数のエンティティ タグ」として定義しています (14.19 を参照)。
簡単なことは、サーバーが応答するときにリクエスト URL をマークし、それをサーバーから返される形式と同様の HTTP 応答ヘッダーでクライアントに送信することです。
1 Eタグ: “5d8c72a5edda8d6a:3239”
クライアントのクエリ更新形式は次のとおりです:
ETag が変更されていない場合は、ステータス 304 が返されます。
つまり、クライアントがリクエストを行った後、HTTP レスポンス ヘッダーには Etag: “5d8c72a5edda8d6a:3239”
が含まれます。
この識別子は、取得したリソースの ID が 5d8c72a5edda8d6a:3239 であることをクライアントに伝えるのと同じです。
None 一致の場合 1 件: 「5d8c72a5edda8d6a:3239」
このようにして、クライアント側は 2 つのコピーをキャッシュし、サーバー側は 2 つの etag を比較します。 If-None-Match が False の場合、200 は返されませんが、304 (Not Modified) 応答が返されます。
指定された日付/時刻を過ぎると、応答は古いとみなされます。有効期限など: 2009 年 4 月 2 日木 05:14:08 GMT
Last-Modified と組み合わせて使用する必要があります。リクエストされたファイルの有効期限を制御するために使用され、リクエストされたデータが有効期間内である場合、クライアントのブラウザは、キャッシュ内のデータが無効または期限切れの場合に、サーバーの代わりにキャッシュにデータをリクエストします。サーバーからのデータ。
Last-Modified フラグは帯域幅を少し節約できますが、HTTP リクエストの送信から逃れることはできないため、Expires と併用する必要があります。 Expires フラグを使用すると、たとえば、ユーザーが F5 キーを押すか [更新] ボタンをクリックした場合でも、Expires を持つ URI に対しても HTTP リクエストが送信されなくなります。したがって、Last-Modified が必要になります。を使用し、Expires と一緒に使用する必要があります。
Etag と Expires の両方がサーバー側で設定されている場合、Etag の原理は同じです。つまり、Last-Modified/Etag に対応する Http リクエスト ヘッダー: If-Modified-Since および If-None-Match です。これら 2 つのヘッダーの値は、Web サーバーによって送信された Last-Modified 値と Etag 値とまったく同じであることがわかります。サーバーは、If-Modified-Since と If-None- が完全に一致した場合にのみ返されます。つまり、変更時刻と Etag を確認した後に一致します。
Last-Modified は ETags リクエストの http ヘッダーと一緒に使用され、サーバーは最初に Last-Modified/Etag タグを生成して、ページが変更されたかどうかを判断し、ファイルを継続するかどうかを決定します。キャッシュされました
1. クライアントはページを要求します (A)。
2. サーバーはページ A を返し、Last-Modified/ETag を A に追加します。
3. クライアントはページを表示し、Last-Modified/ETag とともにページをキャッシュします。
4. クライアントはページ A を再度リクエストし、最後のリクエスト中にサーバーから返された Last-Modified/ETag をサーバーに渡します。
5. サーバーは Last-Modified または ETag をチェックし、最後のクライアント要求以降ページが変更されていないと判断し、応答 304 と空の応答本文を直接返します。
1. Last-Modified ヘッダーと Etag ヘッダーは両方とも Web サーバーによって発行される Http 応答ヘッダーです。Web サーバーは両方のヘッダーを同時にサポートする必要があります。
2. Web サーバーが Last-Modified/Etag ヘッダーをクライアントに送信した後、クライアントはこれらのヘッダーをキャッシュします。
3. クライアントが同じページに対するリクエストを再度開始すると、HTTP リクエスト ヘッダー、つまり Last-Modified/Etag にそれぞれ対応する If-Modified-Since および If-None-Match が送信されます。これら 2 つのヘッダーの値は、Web サーバーによって送信された Last-Modified および Etag の値とまったく同じであることがわかります。
4. 上記の値を使用してサーバー側でファイルがキャッシュされ続けるかどうかを確認します
;
2. 非リアルタイムのインタラクティブな動的ページでの Epires と Etag の処理
タグの分類やアーカイブなど、頻繁に更新されないデータの場合は、キャッシュすることを検討できます。簡単なポイントは、非リアルタイムの対話型動的プログラムで有効期限と etag 識別子を出力し、それらをキャッシュさせることです。 ただし、http ヘッダーに http 応答のセッション ID が含まれないように、セッションを閉じることに注意する必要があります。
例:expires.php
コードをコピー | |
header('キャッシュ制御: max-age=86400,must-revalidate');
header('Last-Modified: ‘ .gmdate(’D, d M Y H:i:s’) . ‘ GMT’ );
header(”有効期限: ” .gmdate (’D, d M Y H:i:s’, time() + ‘86400’ ). ‘ GMT’);
|
etag.phpなど
{
$etag = “http://longrujun.name”;
If (isset($_SERVER['HTTP_IF_NONE_MATCH']) && |
$imagePath = "パス/画像へのパス"; | $eTag = $imagePath; $eTag .= ファイルMTime($imagePath); $eTag = md5($eTag);if((isset($_SERVER['HTTP_IF_NONE_MATCH'])) && | (ストリップスラッシュ($_SERVER['HTTP_IF_NONE_MATCH']) == $eTag)) {||||
header("ETag: ".$eTag);
header("Content-Type: image/png");
readFile($imagePath);
exit();
上記の方法は非常に簡単です。以下の完全な例を参照してください
| http://www.bkjia.com/PHPjc/631550.html
php を使用してブラウザのキャッシュを開く場合でも、Apache または iis サーバー環境を使用して設定する場合でも、ブラウザの Cache-Control に基づいて動作します...

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

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

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

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

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

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

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