HTTP ETag
典型的な場合、ETag値はWebサーバがレスポンスを送信するときに、リソースとセットとなるHTTPヘッダのETagフィールドに、以下のような形でセットされる。
クライアントがこのリソースをETagとともにキャッシュしたとすると、後で同じURLへリクエストを行う場合に、先ほど受け取ったETag値をIf-None-Matchに入れてリクエストを行う。
このリクエストを受け取ると、サーバはリソースのETag値と送られてきたETag値の比較を行う。もしETag値が一致すれば、リソースは変わっていないということになるので、サーバは304 Not Modifiedという、リソース本体を含まないレスポンスを返す。この304というステータスコードのレスポンスは、キャッシュはまだ最新のものなのでそれを使うべきだということを表している。
一方、ETagが一致しなければ、If-None-Matchのないリクエストと同様、リソースを含んだレスポンスを返すこととなる。
また、If-Rangeという、範囲リクエストとETagの確認を同時に行うためのフィールドも存在する。
ETagは、Webページの更新監視にも使うことができる。ただ、WebページにETagを設定していないサイトについては、ETagだけをチェックするという効率的な手法は使えず、ドキュメントすべてをダウンロードして比較するという、サーバ側・クライアント側ともに負荷のかかる手法を使うほかない。