If-Range header
The HTTP If-Range {{Glossary("request header")}}header makes a range request conditional.
If the condition is fulfilled, a range request is issued, and the server sends back a {{HTTPStatus("206", "206 Partial Content")}}Content response with part (or parts) of the resource in the body.
If the condition is not fulfilled, the full resource is sent back with a {{HTTPStatus("200", "200 OK")}}OK status.
This header can be used either with the {{HTTPHeader("Last-Modified")}}Modified validator or with {{HTTPHeader("ETag")}}ETag, but not with both.
The most common use case is to resume a download with guarantees that the resource on the server has not been modified since the last part has been received by the client.
| Header type | |
|---|---|
| No |
Syntax
If-Range: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
If-Range: <etag>
Directives
<etag>- : An entity tag uniquely representing the requested resource. It is a string of ASCII
characters placed between double quotes (Like
"675af34563dc-tr34"). A weak entity tag (one prefixed byW/) must not be used in this header.
- : An entity tag uniquely representing the requested resource. It is a string of ASCII
characters placed between double quotes (Like
<day-name>- : One of
Mon,Tue,Wed,Thu,Fri,Sat, orSun(case-sensitive).
- : One of
<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).
- : One of
<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-Range: Wed, 21 Oct 2015 07:28:00 GMT
If-Range: "67ab43"
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}
See also
- HTTP Conditional Requests guide
{{HTTPHeader("ETag")}}ETag{{HTTPHeader("Last-Modified")}}Modified{{HTTPHeader("If-Match")}}Match,{{HTTPHeader("If-Modified-Since")}}Since,{{HTTPHeader("If-Unmodified-Since")}}Since,{{HTTPHeader("If-None-Match")}}Match conditional request headers{{HTTPStatus("206", "206 PartialContent")}}Content,{{HTTPStatus("412", "412 PreconditionFailed")}}Failed,{{HTTPStatus("416", "416 Range NotSatisfiable")}}Satisfiable response status codes