If-Unmodified-Since 头

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

HTTP If-Unmodified-Since 请求头使对资源的请求变为有条件的。服务器仅在服务器上的资源自请求头中的日期之后未被修改的情况下,才会发送请求的资源(或在 POST 或其他非安全方法的情况下接受它)。如果资源在指定日期之后已被修改,响应将是 412 Precondition Failed 错误。

If-Unmodified-Since 头通常用于以下情况:

  • 与非安全方法(如 POST)结合使用时,此头可用于实现乐观并发控制,某些维基百科就是这样做的:如果存储的文档自原始文档检索以来已被修改,则拒绝修订,从而避免冲突。
  • 与使用 Range 头的范围请求结合使用时,此头可用于确保请求的新片段来自未修改的文档。
头类型 请求头
禁止请求头

语法

http
If-Unmodified-Since: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT

指令

<day-name>

Mon, Tue, Wed, Thu, Fri, SatSun 之一(区分大小写)。

<day>

2 位数字的日期,例如 "04" 或 "23"。必填。

<month>

Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec 之一(区分大小写)。

<year>

4 位数字的年份,例如 "1990" 或 "2016"。

<hour>

2 位数字的小时,例如 "09" 或 "23"。

<minute>

2 位数字的分钟,例如 "04" 或 "59"。

<second>

2 位数字的秒,例如 "04" 或 "59"。

GMT

格林威治标准时间。HTTP 日期始终以 GMT 表示,从不以本地时间表示。

示例

http
If-Unmodified-Since: Wed, 21 Oct 2015 07:28:00 GMT

规范

规范
HTTP 语义
# field.if-unmodified-since

浏览器兼容性

另见