The If-Unmodified-Since
request HTTP header makes the request conditional: the server will send back the requested resource, or accept it in the case of a POST
or another non-safe method, only if it has not been last modified after the given date. If the request has been modified after the given date, the response will be a 412
(Precondition Failed) error.
There are two common use cases:
- In conjunction non-safe methods, like
POST
, it can be used to implement an optimistic concurrency control, like done by some wikis: editions are rejected if the stored document has been modified since the original has been retrieved. - In conjunction with a range request with a
If-Range
header, it can be used to ensure that the new fragment requested comes from an unmodified document.
Header type | Request header |
---|---|
Forbidden header name | no |
Syntax
If-Unmodified-Since: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
Directives
- <day-name>
- One of "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", or "Sun" (case-sensitive).
- <day>
- 2 digit day number, e.g. "04" or "23".
- <month>
- One of "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" (case sensitive).
- <year>
- 4 digit year number, e.g. "1990" or "2016".
- <hour>
- 2 digit hour number, e.g. "09" or "23".
- <minute>
- 2 digit minute number, e.g. "04" or "59".
- <second>
- 2 digit second number, e.g. "04" or "59".
GMT
-
Greenwich Mean Time. HTTP dates are always expressed in GMT, never in local time.
Examples
If-Unmodified-Since: Wed, 21 Oct 2015 07:28:00 GMT
Specifications
Specification | Title |
---|---|
RFC 7232, section 3.4: If-Unmodified-Since | Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests |
Browser compatibility
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.
Feature | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | Servo |
---|---|---|---|---|---|---|---|
If-Unmodified-Since | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Edge Mobile | Firefox for Android | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
If-Unmodified-Since | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
See also
If-Unmodified-since
If-Match
If-None-Match
If-Range
412
Precondition Failed