[1] ETag:
ヘッダーは、選択された表現の実体タグを表します。
[16] ETag:
ヘッダーの値は、
実体タグ (entity-tag
) です >>11。
[48] 起源鯖は、合理的かつ一貫的に変更を検出できる場合には、
選択された表現の ETag:
を送信するべきです >>11。
[8] 起源鯖は、 GET
や HEAD
に対する 200
応答では、
ETag:
も Last-Modified:
も、送ることができるなら送るべきです。
性能上その他の理由で強い実体タグより弱い実体タグが好ましいなら、
それでも構いません。 >>11
[55] 指定してはならない文脈については If-Match:
の項を参照。
[51] クライアントは、起源鯖が実体タグを提供していたなら、
キャッシュの検証を行う要求の
If-Match:
や If-None-Match:
で実体タグを送信しなければなりません >>11。
[52] クライアントは、起源鯖が Last-Modified:
のみを提供していた場合に、キャッシュの全部分の検証を行う要求の
If-Modified-Since:
で Last-Modified
値を送信するべきです >>11。
[53] クライアントは、 HTTP/1.0 起源鯖が Last-Modified:
のみを提供していた場合に、キャッシュの一部分の検証を行う要求の
If-Unmodified-Since:
で Last-Modified:
値を送信して構いません >>11。
利用者エージェントは問題があった場合にこれを無効にする方法を用意するべきです
>>11。
[54] クライアントは、起源鯖が実体タグと Last-Modified
の両方を提供していた場合に、キャッシュの検証を行う要求に両方を含めるべきです
>>11。
DAV:getetag
特性 (WebDAV)#✎[29] DAV:getetag
特性は、 accept header
なしで GET
したときに返されるであろう ETag:
ヘッダーの値を表します >>28。
[30] 値は実体タグです >>28。ETag:
ヘッダーに OWS が含まれる場合でも、値にはこれを含めるべきではありません
>>23。
[31] この値は鯖が制御するもので、この特性は保護特性です >>28。
[32] COPY
や MOVE
の後は、終点資源の最終的な状態により値が決まります >>28。
[33] WebDAV に従う資源で ETag:
ヘッダーを返すものは、 DAV:getetag
特性を定義しなければなりません >>28。
[2621] Editing the Web - Detecting the Lost Update Problem Using Unreserved Checkout ( ( 版)) http://www.w3.org/1999/04/Editing/
[2617] Editing the Web - Detecting the Lost Update Problem Using Unreserved Checkout ( 版) http://www.w3.org/1999/04/Editing/01
The ETag
entityresponse-header fielddefinesprovides the current value of]] the entity tag for the
associated]] requested variant. The headers used with entity tags are described in sections
14.20, 14.2514.24]], 14.26 and 14.
4344. The entity tagmay]] MAY be used for comparison with other entities from the same resource (see section 13.3.
23).実体]]応答頭欄は、 関連付けられ]]要求された変種の実体札 を定義の現在値を提供します。実体札とともに使う頭は
14.20節, 14.25節14.24節]], 14.26節, 14.
4344節(Vary: (>>11))]] で説明しているいます。 実体札は同じ資源のほかの実体との比較に使っても
構いません構いません (13.3.23節参照)。
- [2]
ETag = "ETag" ":" entity-tag
Examples:
[2618] RFC 3143 - Known HTTP Proxy/Caching Problems ( 版) http://tools.ietf.org/html/rfc3143#appendix-A.2.3
[2623] RFC 7252 - The Constrained Application Protocol (CoAP) ( ( 版)) http://tools.ietf.org/html/rfc7252#section-5.10.6
[13] ETag:
は静的にファイルシステム上のデータを提供する鯖が生成することが多いですが、
動的に生成されるページではあまり使われません。
[17] 負荷分散その他の目的で複数の鯖から資源が供給される場合、
それらの ETag:
の精製方法が異なると、
キャッシュが思うように動作しないことがあります。 Apache
などは既定の状態ではファイルの inode番号を ETag:
を使うので、何の設定もしないと鯖ごとに同じファイルでも異なる
ETag:
が使われ、キャッシュが機能しません。
[2619] 堀愚霊瑠の指摘で気付いた、はてなスターの静的ファイルとか想像以上にアレな件 - にぽたん研究所 ( 版) http://blog.livedoor.jp/nipotan/archives/51186026.html
[2620] Squid 2.6.STABLE21 Configuration File: broken_vary_encoding ( 版) http://www.squid-cache.org/Versions/v2/2.6/cfgman/broken_vary_encoding.html
[2622] Protocol Reference - Google Data APIs — Google Developers ( ( 版)) https://developers.google.com/gdata/docs/2.0/reference#ResourceVersioning
[7] 201
(作成済み) 応答では、
作成された資源についての実体札を ETag
頭欄に入れることができます。他の応答の場合
(応答実体についての実体札。) とは異なるので注意が必要です。
[9]
mnot’s Web log: ETags, ETags, ETags (2007-08-09 23:20:31 +09:00
版) http://www.mnot.net/blog/2007/08/07/etags
[10] Sam Ruby: Etag vs Encoding ( 版) http://www.intertwingly.net/blog/2007/09/30/Etag-vs-Encoding
[34] よくデータの同一性検査に MD5 値を使ったりしますが、それを一般的にしたようなものであると理解すれば良いでしょう。
[40] gsnedders / HTTP Entity Tags Confusion ( 版) http://gsnedders.com/http-entity-tags-confusion
[2625] 8 Ways to Save Bandwidth on your RSS Feed ( (Peter Freitag 著, 版)) http://www.petefreitag.com/item/642.cfm
[2626] DSAS開発者の部屋:負荷分散環境でブラウザキャッシュが効かないときは - ETagの解説 - ( ( 版)) http://dsas.blog.klab.org/archives/50602499.html
[2627] Platform API Reference | Heroku Dev Center ( ( 版)) https://devcenter.heroku.com/articles/platform-api-reference#data-integrity
[2628] PublisherEfficiency - pubsubhubbub - How to maximize the efficiency of publishing Atom feeds - A simple, open, webhook based pubsub protocol & open source reference implementation. - Google Project Hosting ( ( 版)) https://code.google.com/p/pubsubhubbub/wiki/PublisherEfficiency#Feed_windowing
[18] Sam Ruby: Vary: ETag ( 版) http://www.intertwingly.net/blog/2004/09/11/Vary-ETag
Historically, an object’s MD5 was expressed via the ETag header. This behavior will continue for non-composite objects in the XML API, but since composite objects don’t support MD5 hashes, users should make no assumptions about those ETags except that they will change whenever the underlying data changes, per the IETF specification for HTTP/1.1.
[36] Linked Data Platform Paging 1.0 ( 版) https://dvcs.w3.org/hg/ldpwg/raw-file/default/ldp-paging.html#h-ldpr-notify-changes
[37] RFC 8132 - PATCH and FETCH Methods for the Constrained Application Protocol (CoAP) () https://tools.ietf.org/html/rfc8132#section-2.3.2
o MUST support ETags [RFC2616] with additional requirements
specified in Section 5.3.4 of this document;
[39] RFC 4791 - Calendaring Extensions to WebDAV (CalDAV) () https://tools.ietf.org/html/rfc4791#section-5.3.4
[41] RFC Errata Report » RFC Editor () https://www.rfc-editor.org/errata_search.php?rfc=4791
[42] curl - How To Use (, ) https://curl.haxx.se/docs/manpage.html#--etag-compare