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 |
浏览器兼容性
加载中…