?
This document uses PHP Chinese website manual Release
If-Match
HTTP 請(qǐng)求報(bào)頭使得所述請(qǐng)求為條件。對(duì)于GET
和HEAD
方法,服務(wù)器將只在與請(qǐng)求的資源匹配時(shí)發(fā)回請(qǐng)求的資源ETags
。對(duì)于PUT
和其他非安全方法,在這種情況下它只會(huì)上傳資源。
與存儲(chǔ)的ETag
比較使用強(qiáng)比較算法,這意味著兩個(gè)文件被認(rèn)為是相同的字節(jié)到字節(jié)。當(dāng)W/
在前面使用前綴時(shí),這被削弱了ETag
。
有兩種常見用例:
對(duì)于GET
和HEAD
方法,與Range
頭部結(jié)合使用,可以保證請(qǐng)求的新范圍來自與前一個(gè)相同的資源。如果不匹配,則416
返回( Range Not Satisfiable )響應(yīng)。
對(duì)于其他方法,特別是對(duì)PUT
,If-Match
可用于防止丟失的更新問題。它可以檢查用戶想要上傳的資源的修改是否會(huì)覆蓋從原始資源獲取以來完成的另一個(gè)更改。如果請(qǐng)求無法實(shí)現(xiàn),412
則返回( Precondition Failed )響應(yīng)。
Header type | Request header |
---|---|
Forbidden header name | no |
If-Match: <etag_value>If-Match: <etag_value>, <etag_value>, …
<etag_value> 只表示請(qǐng)求資源的實(shí)體標(biāo)簽。它們是放置在雙引號(hào)(像 "675af34563dc-tr34"
)之間的 ASCII 字符串,可以加前綴W/
表示應(yīng)使用弱比較算法。*
星號(hào)是表示任何資源的特殊值。
If-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"If-Match: W/"67ab43", "54ed21", "7892dd"If-Match: *
Specification | Title |
---|---|
RFC 7232, section 3.1: If-Match | Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests |
Feature | Chrome | Firefox | Edge | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |