[HTTP] HTTPプロトコルのETagが何をするか知っていますか?

序文

HTTP1.1仕様では、新しいHTTPヘッダー情報ETagが追加されています。通常の開発者にとって、HTTPヘッダーは変更されない場合があります。アクセスできない、または使用頻度が低いという事実は、リクエストヘッダーが重要ではないことを意味しません。ETagを適切に使用することで、サーバー帯域幅への圧力を軽減できます。

ETagとは何ですか?

EtagはEntityタグの略語で、「要求された変数のエンティティ値」と理解できます。Etagはサーバー側のリソースの識別子であり、HTTP応答ヘッダーでクライアントに送信されます。いわゆるサーバー側リソースは、Webページ、JSON、XMLのいずれかです。サーバーは、マークとその意味を判断し、HTTP応答ヘッダーでクライアントに送信する責任を単独で負います。たとえば、ブラウザが初めてリソースを要求すると、サーバーはそれを返し、ETag: "50b1c1d4f775c61:df3"をブラウザに返します。ブラウザがこのリソースを再び要求すると、ブラウザは-なし-マッチ:W / "50b1c1d4f775c61:df3"がサーバーに送信されます。サーバーはETAGを取得し、リソースが変更されたかどうかを比較します。リソースが変更されていない場合、304 HTTPステータスコードを返し、特定のリソースを返しません。

説明するetagの実用的な例

Etagを介してブラウザーのキャッシュを使用して、サーバーの帯域幅の負荷を軽減できます。これにより、サーバーのパフォーマンス(データ転送)を改善できます。Qi NiuyunのファイルストレージはEtagの属性を使用します。次に、Qiniu Cloudのリソースをリクエストします。

ここに画像の説明を挿入
Etagフィールドが私たちに返されたことを、その応答ヘッダーで確認できます。Etagの値はFpl1rXE-K20cYsLu89YTzUQ3ydDkです。

ここに画像の説明を挿入
このとき、HTTPステータスコードは304になり、304ステータスコードはリソースが変更されていないことを示します。次のようにHTTPリクエストヘッダーを確認します。
ここに画像の説明を挿入
クライアントがサーバーにリソースをリクエストすると、If-None-Matchリクエストヘッダーに前のサーバーから返されたEtagの値が含まれていることがわかります。サーバーは2番目の要求を受信し、それがIf-None-Matchフィールドを保持していることを検出すると、サーバーの対応するリソースのEtagを再計算します。2つが一致する場合、リソースは変更されていないと見なします。クライアントにキャッシュ内のデータを読み取らせます。

436の元の記事を公開 好き14 訪問者100,000+

おすすめ

転載: blog.csdn.net/LU_ZHAO/article/details/105526243