【イータグ】
ETag とは?
最終更新:
💡 保存した内容と照合する、HTTPの識別タグ
HTTPで、選択されたリソース表現を識別するためにサーバーが付けるタグ。条件付きリクエストによるキャッシュの確認や、更新時の条件判定に使われる。
📌 このページのポイント
- ETagの値はサーバーが決め、ハッシュ・版番号など生成方法は限定されない
- 保存済みのタグをIf-None-Matchで送り、GETの再確認に使える
- 条件付きGETでタグが一致すると304で本体を省ける
- 強いタグは厳密な一致、W/付きの弱いタグは意味的な同等性を扱う
ETagって何のためにあるの?
具体的にはどう使うの?
最初のGETでETagが返ったら、内容と一緒に保存するよ。再確認するGETでIf-None-Matchにその値を付ける。現在の表現とタグが一致すれば304 Not Modifiedとなり、本体を送らず保存済みの内容を使えるんだ。
タグが変わっていたら?
その条件では304にならず、正常に取得できれば200と新しい本体が返るよ。ETagだけで常に最速になるわけではないし、保存できるか、いつ再確認するかはCache-Controlなどのキャッシュ規則も関係するんだ。
強いETagと弱いETagは何が違うの?
Last-Modifiedとの違いや、更新への使い道は?
Last-Modifiedは更新日時で、HTTPの日付は秒単位だよ。ETagは時刻以外でも識別できる。両方を使う場合、If-None-MatchがあるとIf-Modified-Sinceは無視される。更新ではIf-Matchに強いタグを付け、他の人の更新後に上書きするのを防ぐ条件にも使えるよ。
まとめ:ざっくりこれだけ覚えればOK!
「ETag」って出てきたら「HTTPで内容の版を照合する識別タグ」と思えばだいたいOK!
📖 おまけ:英語の意味
「Entity Tag」 = 実体を識別するタグ
💬 Entity(実体)とTag(札)を組み合わせた名前。最新版の保証ではなく、受け取った表現を照合する札だよ。