ETag
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015ë 7ì.
ETag HTTP ìëµ í¤ëë í¹ì ë²ì ì 리ìì¤ë¥¼ ìë³íë ìë³ìì ëë¤. ì¹ ìë²ê° ë´ì©ì íì¸íê³ ë³íì§ ììì¼ë©´, ì¹ ìë²ë¡ full ìì²ì ë³´ë´ì§ ì기 ë문ì, ìºì¬ê° ë í¨ì¨ì ì´ê² ëê³ , ëìíë ìë ì ììµëë¤. íë, ë§ì½ ë´ì©ì´ ë³ê²½ëìë¤ë©´, "mid-air collisions" ì´ë¼ë 리ìì¤ ê°ì ëì ë¤ë°ì ìì ë° ë®ì´ì°ê¸° íìì ë§ëë° ì ì©íê² ì¬ì©ë©ëë¤.
ë§ì½ í¹ì URL ì 리ìì¤ê° ë³ê²½ëë¤ë©´, ìë¡ì´ ETag ê° ìì±ë©ëë¤. ETag ë ì§ë¬¸ê³¼ ê°ì ìí ì íë©´ì ë¤ë¥¸ ìë²ë¤ì´ ì¶ì íë ì©ëì ì´ì©ë기ë í©ëë¤. ETag 를 ë¹êµíì¬ ë¦¬ìì¤ê° ìë¡ ê°ìì§ì ì¬ë¶ë¥¼ ë¹ ë¥´ê² íë¨í ì ìì§ë§, ìë²ìì 무기íì¼ë¡ ì§ìë ì ìëë¡ ì¤ì í ìë ììµëë¤.
| Header type | Response header |
|---|---|
| Forbidden request header | no |
문ë²
ETag: W/"<etag_value>" ETag: "<etag_value>"
ì§ìì
W/Optional-
'W/'(ë/ì문ì를 구ë¶í©ëë¤.) weak validator ê° ì¬ì©ëììì ëíë ëë¤. Weak validators ë ë§ë¤ê¸°ë ì½ì§ë§ ë¹êµí기ìë í¨ì¨ì±ì´ ë¨ì´ì§ëë¤. Strong validators ë ë¹êµí기ìë ì´ìì ì´ì§ë§ í¨ì¨ì ì¼ë¡ ë§ë¤ê¸°ê° ì´ë µìµëë¤. ëì¼í ììì ë ê°ì§ WeakEtagê°ì ëì¼í ì ìì§ë§, ë°ì´í¸ ë¨ìê¹ì§ ëì¼íì§ ììµëë¤. - "<etag_value>"
-
Entity tags ë ìì²ë ê°ì ASCII ì½ëì ê°ì´ ê³ ì í ííë¡ ëíë ëë¤. (ì :
"675af34563dc-tr34")ETagì ê°ì ìì±íë ë°©ë²(Method)ì ë¨ìí íê°ì§ë¡ ì í´ì ¸ìì§ ììµëë¤. ëëë¡, ì½í ì¸ ì í´ì, ë§ì§ë§ì¼ë¡ ìì ë íìì¤í¬íì í´ì, í¹ì ê·¸ë¥ ê°ì ë²í¸ë¥¼ ì´ì©í©ëë¤. ì를ë¤ì´, MDN ë wiki(ì½í ì¸ )ì 16ì§ì í´ì를 ì¬ì©í©ëë¤.
ìì
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4" ETag: W/"0815"
ì¶©ë í¼í기 (mid-air collisions)
ETagì HTTPí¤ëì If-Match를 ì´ì©íì¬ ì¶©ëì ì측í ì ììµëë¤.
ì를 ë¤ì´ MDNì í¸ì§í ë, íì¬ ìí¤ ì½í
ì¸ ë í´ìëì´ Etag ìì ë¤ì´ê°ëë¤.
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
ìí¤ íì´ì§ì ë³ê²½ì¬íì ì ì¥í ë, POSTì ìì²ì If-Matchí¤ëì ìë¡ì´ ë³ê²½ì¬íì´ ë°ìíëì§ íë³í기 ìí´, 기존ì ETagê°ì í¬í¨íì¬ ìì²ì ì§íí©ëë¤.
If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"
í´ìê° ì¼ì¹íì§ ìì¼ë©´, 문ìê° ë³ê²½ëìë¤ë ì미ì´ë©° 412 Precondition Failed (ì ì ì¡°ê±´ ì¤í¨) ìë¬ë¥¼ ëì ¸ì£¼ê² ë©ëë¤.
ë³ê²½ëì§ ìì 리ìì¤ì ìºì±
ETagì ë¤ë¥¸ ì©ë¡ë ë³ê²½ëì§ ìì 리ìì¤ë¥¼ ìºìíë ê² ì
ëë¤. ì¬ì©ìê° URLì ì¬ë°©ë¬¸ íì ë(ETag를 ê°ì§ê³ ìë ìíìì), ë³´ì í ETagê° ë무 ì¤ëëì´ ì¬ì©ë ì ìë¤ê³ íë¨ëë©´, í´ë¼ì´ì¸í¸ë If-None-Match í¤ë íëì ETag를 ì ì¡í©ëë¤.
If-None-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"
ìë²ë í´ë¼ì´ì¸í¸ì ETag를 íì¬ ë²ì 리ìì¤ì ETagì ë¹êµíê³ , ë ê°ì´ ì¼ì¹íë ê²½ì°(리ìì¤ì ë³ê²½ì´ ìë ê²½ì°) 304 Not Modified ìí를 ë°íí©ëë¤. ì´ ìíë ìºìë ë²ì ì´ ì¬ì í ì í¨íë¤ë ê²ì í´ë¼ì´ì¸í¸ìê² ìë ¤ì¤ëë¤.
ì¬ì
| ì¬ì | ì 목 |
|---|---|
| RFC 7232, ì¹ì 2.3: ETag | Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests |
ë¸ë¼ì°ì í¸íì±
ì°¸ê³
If-MatchIf-None-Match304Not Modified412Precondition Failed- W3C Note: Editing the Web â Detecting the Lost Update Problem Using Unreserved Checkout