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