If-Match 头
HTTP If-Match
请求头使请求有条件。服务器只会在资源与 If-Match
请求头中任何一个 ETag
值匹配时,才会返回 GET
和 HEAD
方法的资源,或上传 PUT
及其他非安全方法的资源。如果条件不匹配,则返回 412 Precondition Failed
响应。
与存储的 ETag
进行比较时,使用的是强比较算法,这意味着两个文件被视为逐字节相同。如果列出的 ETag
带有表示弱实体标签的 W/
前缀,则此比较算法将永远不匹配它。
有两个常见的用例
语法
http
If-Match: <etag_value>
If-Match: <etag_value>, <etag_value>, …
指令
<etag_value>
-
实体标签唯一标识所请求的资源。它们是包含在双引号之间的 ASCII 字符串(例如
"675af34563dc-tr34"
)。它们可能带有W/
前缀,表示它们是“弱”的,即它们在语义上而非逐字节地代表资源。然而,在If-Match
头中,弱实体标签永远不会匹配。 *
-
星号是一个特殊值,表示任何资源。请注意,如果源服务器没有目标资源的当前表示,则此值必须匹配为
false
。
示例
http
If-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"
If-Match: "67ab43", "54ed21", "7892dd"
If-Match: *
规范
规范 |
---|
HTTP 语义 # field.if-match |
浏览器兼容性
加载中…