If-Unmodified-Since - HTTP 编辑
HTTP协议中的 If-Unmodified-Since
消息头用于请求之中,使得当前请求成为条件式请求:只有当资源在指定的时间之后没有进行过修改的情况下,服务器才会返回请求的资源,或是接受 POST
或其他 non-safe 方法的请求。如果所请求的资源在指定的时间之后发生了修改,那么会返回 412
(Precondition Failed) 错误。
常见的应用场景有两种:
- 与 non-safe 方法如
POST
搭配使用,可以用来优化并发控制,例如在某些wiki应用中的做法:假如在原始副本获取之后,服务器上所存储的文档已经被修改,那么对其作出的编辑会被拒绝提交。 - 与含有
If-Range
消息头的范围请求搭配使用,用来确保新的请求片段来自于未经修改的文档。
Header type | Request header |
---|---|
Forbidden header name | no |
语法
If-Unmodified-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-Unmodified-Since: Wed, 21 Oct 2015 07:28:00 GMT
规范
Specification | Title |
---|---|
RFC 7232, section 3.4: If-Unmodified-Since | Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests |
浏览器兼容性
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
相关内容
If-Unmodified-since
If-Match
If-None-Match
If-Range
412
Precondition Failed
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论