If-None-Match ãããã¼
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
HTTP ã® If-None-Match ãªã¯ã¨ã¹ããããã¼ã¯ããªã¯ã¨ã¹ããæ¡ä»¶ä»ãã«ãã¾ãã
ãµã¼ãã¼ã¯ãGET ããã³ HEAD ã¡ã½ããã§ãªã¯ã¨ã¹ãããããªã½ã¼ã¹ãã200 ã¹ãã¼ã¿ã¹ã§è¿ãã¾ãããã ãããã®ãªã½ã¼ã¹ã« If-None-Match ãããã¼å
ã®ãã®ã¨ä¸è´ãã ETag ãåå¨ããªãå ´åã«éãã¾ãã
ãã®ä»ã®ã¡ã½ããã«ã¤ãã¦ã¯ãæçµçã«åå¨ãããªã½ã¼ã¹ã® ETag ãããªã¹ãããã¦ããå¤ã®ãããã¨ãä¸è´ããªãå ´åã«ã®ã¿ããªã¯ã¨ã¹ããå¦çããã¾ãã
GET ããã³ HEAD ã¡ã½ããã«ããã¦æ¡ä»¶ãæºããããªãå ´åããµã¼ãã¼ã¯ 304 Not Modified ãè¿ãããã¤ãåããªã¯ã¨ã¹ãã«å¯¾ãã 200 ã¬ã¹ãã³ã¹ã§éä¿¡ãããã¯ãã ã£ããããã¼ãã£ã¼ã«ã Cache-ControlãContent-LocationãDateãETagãExpiresãVary ã®ãããããè¿ããªããã°ãªãã¾ããã
ãµã¼ãã¼å´ã§å¤æ´ãé©ç¨ããã¡ã½ããã®å ´åãæ¡ä»¶ãæºããããªãã£ãéã«ã¯ 412 Precondition Failed ã使ç¨ããã¾ãã
ä¿åããã¦ãã ETag ã¨ã®æ¯è¼ã«ã¯å¼±ãæ¯è¼ã¢ã«ã´ãªãºã ã使ç¨ããã¾ããã¤ã¾ããå 容ãåçã§ããã°ã2 ã¤ã®ãã¡ã¤ã«ã¯åä¸ã¨ã¿ãªããã¾ãããã¤ãåä½ã§å®å ¨ã«ä¸è´ãã¦ããå¿ è¦ã¯ããã¾ããã ãã¨ãã°ãããã¿ã¼ã®ä½ææ¥ä»ãç°ãªã 2 ã¤ã®ãã¼ã¸ã§ãã£ã¦ããåä¸ã¨ã¿ãªããã¾ãã
If-Modified-Since ã¨ä¸ç·ã«ä½¿ç¨ããå ´åãIf-None-Match ãåªå
ããã¾ã (ãµã¼ãã¼ã対å¿ãã¦ããå ´å)ã
ãªã¯ã¨ã¹ãã§ If-None-Match ã使ç¨ããä¸è¬çãªã±ã¼ã¹ã¯ã次㮠2 ã¤ãããã¾ãã
GETããã³HEADã¡ã½ããã®å ´åã¯ãé¢é£ä»ãããã ETag ãæã¤ãã£ãã·ã¥ãããã¨ã³ãã£ãã£ãæ´æ°ããããã- ä»ã®ã¡ã½ãããç¹ã«
PUTã®å ´åãIf-None-Matchã¯*å¤ã¨å ±ã«ä½¿ç¨ãããåå¨ãããã©ããåãã£ã¦ããªããã¡ã¤ã«ãä¿åããéã«ã以åä»ã®ã¢ãããã¼ããè¡ããã¦ãããã以å PUT ããããã¼ã¿ã失ããªããã¨ãä¿è¨¼ããããã«ä½¿ç¨ãããã¨ãã§ãã¾ãããã®åé¡ã¯ã lost update problem ã®ä¸ç¨®ã§ãã
| ãããã¼ç¨®å¥ | ãªã¯ã¨ã¹ããããã¼ |
|---|---|
| ç¦æ¢ãªã¯ã¨ã¹ããããã¼ | ããã |
æ§æ
If-None-Match: "<etag_value>"
If-None-Match: "<etag_value>", "<etag_value>", â¦
If-None-Match: *
ãã£ã¬ã¯ãã£ã
<etag_value>-
ãªã¯ã¨ã¹ãããããªã½ã¼ã¹ã䏿ã«è¡¨ãã¨ã³ãã£ãã£ã¿ã°ã§ããäºéå¼ç¨ç¬¦ã®éã«ç½®ããã ASCII æåå (
"675af34563dc-tr34"ãªã©) ã§ãããW/ã®æ¥é è¾ãä»ããã¨ãå¼±ãæ¯è¼ã¢ã«ã´ãªãºã ã使ç¨ããã¹ãã§ãããã¨ã示ããã¨ãã§ãã¾ãï¼ãã®ã¢ã«ã´ãªãºã ã ãã使ç¨ããå ´åã¯If-None-Matchã§ã¯æå³ãããã¾ããï¼ã *-
ã¢ã¹ã¿ãªã¹ã¯ã¯ä»»æã®ãªã½ã¼ã¹ã表ãç¹æ®ãªå¤ã§ããé常
PUTã使ç¨ãããªã½ã¼ã¹ã®ã¢ãããã¼ãã®å ´åããã®èå¥åãæã¤å¥ãªãªã½ã¼ã¹ããã§ã«ã¢ãããã¼ãããã¦ãããã¨ãããå ´åã«ã®ã¿æç¨ã§ãã
ä¾
If-None-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"
If-None-Match: W/"67ab43", "54ed21", "7892dd"
If-None-Match: *
仿§æ¸
| 仿§æ¸ |
|---|
| HTTP Semantics > # field.if-none-match > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
ETagIf-Match,If-Modified-Since,If-Unmodified-Sinceæ¡ä»¶ä»ããªã¯ã¨ã¹ããããã¼304 Not Modified,412 Precondition Failedã¬ã¹ãã³ã¹ã¹ãã¼ã¿ã¹ã³ã¼ã