ホームページ > php教程 > php手册 > クライアント側キャッシュを使用して Web サイトを最適化する方法

クライアント側キャッシュを使用して Web サイトを最適化する方法

PHPz
リリース: 2018-10-19 16:02:54
オリジナル
1224 人が閲覧しました

多くの人は、まずサーバー キャッシュの観点からプログラムを最適化したいと考えます。たとえば、私が参加したいくつかのプロジェクトでは、キャッシュ ヒット率に応じて 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.
ブートストラップ チュートリアル

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート