If-None-Match header
HTTP If-None-Match 请求头使请求条件化。服务器只在没有匹配 If-None-Match 头中任何 ETag 的情况下,才会在 GET 和 HEAD 方法中返回所请求的资源,并附带 200 状态。对于其他方法,请求只在最终存在的资源的 ETag 不匹配所列出的任何值时才会被处理。
当 GET 和 304 Not Modified 状态,以及任何在 200 响应中会发送的以下头字段:Cache-Control、Content-Location、Date、ETag、Expires 和 Vary。对于应用于服务器端更改的方法,当条件失败时,使用 412 Precondition Failed。
与存储的 ETag 的比较使用弱比较算法,这意味着如果内容等效,则认为两个文件是相同的——它们不必逐字节相同。例如,两个仅在页脚创建日期不同的页面仍会被认为是相同的。
当与 If-Modified-Since 结合使用时,如果服务器支持,If-None-Match 具有优先权。
在请求中使用 If-None-Match 有两种常见情况:
语法
http
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一起使用,以检查是否已上传具有相同标识的资源。
示例
http
If-None-Match: "bfc13a64729c4290ef5b2c2730249c88ca92d82d"
If-None-Match: W/"67ab43", "54ed21", "7892dd"
If-None-Match: *
规范
| 规范 |
|---|
| HTTP 语义 # field.if-none-match |
浏览器兼容性
加载中…