If-Modified-Since
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
If-Modified-Since
是一个条件式请求首部,服务器只在所请求的资源在给定的日期时间之后对内容进行过修改的情况下才会将资源返回,状态码为 200
。如果请求的资源从那时起未经修改,那么返回一个不带有消息主体的 304
响应,而在 Last-Modified
首部中会带有上次修改时间。不同于 If-Unmodified-Since
, If-Modified-Since
只可以用在 GET
或 HEAD
请求中。
当与 If-None-Match
一同出现时,它(If-Modified-Since
)会被忽略掉,除非服务器不支持 If-None-Match
。
最常见的应用场景是来更新没有特定 ETag
标签的缓存实体。
Header type | Request header |
---|---|
Forbidden header name | no |
语法
If-Modified-Since: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
指令
- <day-name>
-
"Mon", "Tue", "Wed", "Thu", "Fri", "Sat" 或 "Sun" 之一(区分大小写)。
- <day>
-
两位数字表示的天数,例如"04" or "23"。
- <month>
-
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" 之一(区分大小写)。
- <year>
-
4 位数字表示的年份,例如 "1990" 或者"2016"。
- <hour>
-
两位数字表示的小时数,例如 "09" 或者 "23"。
- <minute>
-
两位数字表示的分钟数,例如"04" 或者 "59"。
- <second>
-
两位数字表示的秒数,例如 "04" 或者 "59"。
GMT
-
国际标准时间。HTTP 中的时间均用国际标准时间表示,从来不使用当地时间。
示例
If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT
规范
Specification |
---|
HTTP Semantics # field.if-modified-since |
浏览器兼容性
BCD tables only load in the browser
参见
ETag
If-Unmodified-since
If-Match
If-None-Match
304
Not Modified