If-Match
If-Match
HTTP 请求头使请求具有条件性。
服务器仅当资源与列出的 ETag
值之一匹配时,才会返回针对 GET
和 HEAD
方法的请求资源,或针对 PUT
及其他非安全方法的上传资源。如果条件不匹配,则返回 412
(前提条件失败)响应。
与存储的 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 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。