Open1
【Browser Cache】ETagについて
Etagとは?
ETagやブラウザキャッシュの仕組みについて、次の記事の説明がわかりやすい💪🥺🔥
ここから引用します🙏
Etagとは、ブラウザキャッシュの仕組みの中で使用されるHTTPレスポンスヘッダーでリソースの特定のバージョンに関する識別子のことです。
Etagがあることでウェブサーバーは、コンテンツが変更されていない場合はレスポンス全体を再送する必要がないので、キャッシュがより効率的になる。
ブラウザキャッシュの設定について
ブラウザキャッシュを設定する際に必要なHTTPレスポンスヘッダーはEtagを含めて以下の通りです。
- Expiresヘッダー
- Cache-Controlヘッダー
- Last-Modifiedヘッダー
- Etagヘッダー
Etagヘッダー
EtagヘッダーはLast-Modifiedヘッダーと同様に条件付きGETリクエストを送信することでキャッシュを実現します。
Etagヘッダーの挙動は以下のようになります。
- 初回のリソースの取得の際にHTTPサーバはEtagヘッダーに一意のハッシュを付与します。
- ブラウザはその受け取ったレスポンスのリソースファイルと、Etagハッシュをブラウザキャッシュに保存します。
- 次に同じリソースにアクセスする際に、ブラウザはリクエストヘッダーにIf-None-Matchに先ほどブラウザキャッシュに保存したEtagの値をセットしてリクエストを送信します。
- サーバで受け取ったIf-None-Matchのハッシュと初回アクセス時にセットしたEtagハッシュが一致した場合は、リソースの更新がないとみなし、304 Not Modifiedステータスをresponse bodyなしで返送し、キャッシュされたレスポンスのバージョンがまだ使用可能 (新しい) であることをクライアントに通知します。
参考・引用