多くの人は、まずサーバー キャッシュの観点からプログラムを最適化したいと考えます。たとえば、私が参加したいくつかのプロジェクトでは、キャッシュ ヒット率に応じて Com / が使用されていました。サーバー側のキャッシュと、エンタープライズ ライブラリ キャッシュ/Windows サービス、静的ファイルなどの形式の HTTP 圧縮テクノロジーですが、サーバーのキャッシュによってページへのアクセスが非常に高速になったとしても、クライアント側のキャッシュは無視されることがよくあります。ブラウザはそれをダウンロードして出力する必要があり、クライアント側のキャッシュを追加すると、サイト内で最も頻繁にアクセスされるページをキャッシュできるため、多くのメリットがもたらされます。 Web サーバー (通常はページごとの 1 秒あたりのリクエスト) により、アプリケーションのパフォーマンスとスケーラビリティが向上します。
オンライン ショッピングに関する調査によると、ほとんどの人は店舗では行列に並ぶことに意欲を持っていますが、オンライン ショッピングでは待ちたくないそうです。調査会社 Websense は、インターネット ユーザーの 70% が 10 秒以上ページを読むことに抵抗があると主張しています。 70%以上の人が速度が遅すぎるため、現在の注文をキャンセルします。
基礎知識
1) 「Last-Modified」とは何ですか?
ブラウザが初めて URL をリクエストしたとき、サーバーの戻りステータスは 200 で、コンテンツは要求したリソースであり、このファイルがサービス側で最後に変更された時刻をマークする Last-Modified 属性があります。形式は次のようになります。
Last-Modified: Fri, 12 May 2006 18:53:33 GMT
HTTP プロトコルの規定に従って、クライアントがこの URL を 2 度目に要求したとき、ブラウザは If-Modified- をサーバーに送信します Because ヘッダーは、ファイルがこの時間以降に変更されたかどうかを尋ねます:
If-Modified-Since: Fri, 12 May 2006 18:53: 33 GMT
if サーバー側のリソースが変更されない場合、内容が空の HTTP 304 (Not Changed.) ステータス コードが自動的に返されるため、送信されるデータ量が節約されます。サーバー側のコードが変更されるか、サーバーが再起動されると、リソースが再発行され、最初のリクエストと同様のものが返されます。 これにより、リソースがクライアントに繰り返し送信されなくなり、サーバーが変更されたときにクライアントが最新のリソースを取得できるようになります。
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. 入門から習熟までの PHP プログラミングに関する完全なビデオ チュートリアル
2.プログラミングの入門から熟練度まで 3.
ブートストラップ チュートリアル