多くの人は、まずサーバー キャッシュの観点からプログラムを最適化したいと考えます。さまざまなサーバー キャッシュ方法にはそれぞれ独自の特徴があります。たとえば、私が参加したいくつかのプロジェクトでは、キャッシュ ヒット率に応じて Com+/Enterprise Libiary Caching を使用しました。 Windows サービスや静的ファイルなどのサーバー側のキャッシュと HTTP 圧縮テクノロジですが、クライアント側のキャッシュは無視されることがよくあります。サーバーのキャッシュによってページへのアクセスが非常に高速になったとしても、ブラウザーのダウンロードに依存する必要があります。そして、クライアント側のキャッシュを追加すると、サイト内で最も頻繁にアクセスされるページをキャッシュできるため、Web サーバーのスループット (通常は 1 秒あたりのリクエストの観点から) が完全に向上します。データ コンピューティング) を使用して、アプリケーションのパフォーマンスとスケーラビリティを向上させます。
オンライン ショッピングに関する調査によると、ほとんどの人は店舗では行列に並ぶことに抵抗はありますが、オンライン ショッピングでは待ちたくないことがわかりました。調査会社 Websense は、インターネット ユーザーの 70% が 10 秒以上ページを読むことに抵抗があると主張しています。 70%以上の人が速度が遅すぎるため、現在の注文をキャンセルします。
基礎知識
1) 「Last-Modified」とは何ですか?
ブラウザが初めて URL をリクエストしたとき、サーバーから返されるステータスは 200 で、コンテンツはリクエストしたリソースであり、Last-Modified があります。 Modified 属性。このファイルがサーバー側で最後に変更された時間をマークします。形式は次のようになります。
Last-Modified: Fri, 12 May 2006 18:53:33 GMT
クライアントが 2 番目にこの URL を要求したとき。 HTTP プロトコルの規定に従って、ブラウザは If-Modified-Since ヘッダーをサーバーに送信し、この時間以降にファイルが変更されたかどうかを尋ねます:
If-Modified-Since: Fri, 12 May 2006 18 :53:33 GMT
サーバー側のリソースが変更されていない場合、HTTP 304 (変更されていません。) ステータス コードが自動的に返され、コンテンツは空になるため、送信されるデータ量が節約されます。サーバー側のコードが変更されるか、サーバーが再起動されると、リソースが再発行され、最初のリクエストと同様のものが返されます。 これにより、リソースがクライアントに繰り返し送信されなくなり、サーバーが変更されたときにクライアントが最新のリソースを取得できるようになります。
2) 「Etag」とは何ですか?
HTTP プロトコル仕様では、ETag を「要求された変数のエンティティ値」として定義しています (第 14.19 章を参照)。 別の言い方をすると、ETag は Web リソースに関連付けることができるトークンです。一般的な Web リソースは Web ページですが、JSON または XML ドキュメントの場合もあります。サーバーは、トークンの内容とその意味を決定する責任を負い、それを HTTP 応答ヘッダーでクライアントに送信します。サーバーから返される形式は次のとおりです:
ETag: "50b1c1d4f775c61:df3"
クライアントのクエリ更新。形式は次のとおりです。
If-None-Match: W/"50b1c1d4f775c61:df3"
ETag が変更されていない場合、ステータス 304 が返され、その後は返されません。これは Last-Modified と同じです。私は主にブレークポイントのダウンロード中に役立つように Etag をテストしました。
Last-Modified と Etag はパフォーマンスの向上にどのように役立ちますか?
賢い開発者は、Last-Modified と ETag リクエストの 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/2 12次のページ
上記では、クライアント キャッシュを使用して Web サイトを最適化する h3c 802.1x クライアントの原理分析を 1/2 ページで紹介しています。これには、h3c 802.1x クライアントの内容も含まれており、PHP チュートリアルに興味のある友人に役立つことを願っています。