Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Revision 1111793 of If-Range

  • Revision slug: Web/HTTP/Headers/If-Range
  • Revision title: If-Range
  • Revision id: 1111793
  • Created:
  • Creator: fscholz
  • Is current revision? Yes
  • Comment fix github url

Revision Content

{{HTTPSidebar}}

The If-Range request HTTP header makes the range request conditional: if the condition is fulfilled, the range request will be and the server send back a {{HTTPStatus("206")}} Partial Content answer with the appropriate body. If the condition is not fulfilled, the full resource is sent back, with a {{HTTPStatus("200")}} OK status.

This header can be used either with a {{HTTPHeader("Last-Modified")}} validator, or with an {{HTTPHeader("ETag")}}, but not with both.

The most common use case is to resume a download, to guarantee that the stored resource has not been modified since the last fragment has been received.

Header type {{Glossary("Request header")}}
{{Glossary("Forbidden header name")}} no

Syntax

If-Range: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
If-Range: <etag>

Directives

<etag_value>
An entity tag uniquely representing the requested resource. It isa string of ASCII characters placed between double quotes (Like "675af34563dc-tr34") and may be prefixed by W/ to indicate that the weak comparison algorithm should be used.
<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-Range: Wed, 21 Oct 2015 07:28:00 GMT 

Specifications

Specification Title
{{RFC("7233", "If-Range", "3.2")}} Hypertext Transfer Protocol (HTTP/1.1): Range Requests

Browser compatibility

{{Compat}}

See also

  • {{HTTPHeader("ETag")}}
  • {{HTTPHeader("Last-Modified")}}
  • {{HTTPHeader("If-Modified-Since")}}
  • {{HTTPHeader("If-Unmodified-Since")}}
  • {{HTTPHeader("If-Match")}}
  • {{HTTPHeader("If-None-Match")}}
  • {{HTTPStatus("206")}} Partial Content
  • HTTP Conditional Requests

Revision Source

<div>{{HTTPSidebar}}</div>

<p>The <strong><code>If-Range</code></strong> request HTTP header makes the range request conditional: if the condition is fulfilled, the range request will be and the server send back a {{HTTPStatus("206")}} <code>Partial Content</code> answer with the appropriate body. If the condition is not fulfilled, the full resource is sent back, with a {{HTTPStatus("200")}} <code>OK</code> status.</p>

<p>This header can be used either with a {{HTTPHeader("Last-Modified")}} validator, or with an {{HTTPHeader("ETag")}}, but not with both.</p>

<p>The most common use case is to resume a download, to guarantee that the stored resource has not been modified since the last fragment has been received.</p>

<table class="properties">
 <tbody>
  <tr>
   <th scope="row">Header type</th>
   <td>{{Glossary("Request header")}}</td>
  </tr>
  <tr>
   <th scope="row">{{Glossary("Forbidden header name")}}</th>
   <td>no</td>
  </tr>
 </tbody>
</table>

<h2 id="Syntax">Syntax</h2>

<pre class="syntaxbox">
If-Range: &lt;day-name&gt;, &lt;day&gt; &lt;month&gt; &lt;year&gt; &lt;hour&gt;:&lt;minute&gt;:&lt;second&gt; GMT
If-Range: &lt;etag&gt;</pre>

<h2 id="Directives">Directives</h2>

<dl>
 <dt>&lt;etag_value&gt;</dt>
 <dd>An entity tag uniquely representing the requested resource. It isa string of ASCII characters placed between double quotes (Like <code>"675af34563dc-tr34"</code>) and may be prefixed by <code>W/</code> to indicate that the weak comparison algorithm should be used.</dd>
</dl>

<dl>
 <dt>&lt;day-name&gt;</dt>
 <dd>One of "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", or "Sun" (case-sensitive).</dd>
 <dt>&lt;day&gt;</dt>
 <dd>2 digit day number, e.g. "04" or "23".</dd>
 <dt>&lt;month&gt;</dt>
 <dd>One of "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" (case sensitive).</dd>
 <dt>&lt;year&gt;</dt>
 <dd>4 digit year number, e.g. "1990" or "2016".</dd>
 <dt>&lt;hour&gt;</dt>
 <dd>2 digit hour number, e.g. "09" or "23".</dd>
 <dt>&lt;minute&gt;</dt>
 <dd>2 digit minute number, e.g. "04" or "59".</dd>
 <dt>&lt;second&gt;</dt>
 <dd>2 digit second number, e.g. "04" or "59".</dd>
 <dt><code>GMT</code></dt>
 <dd>
 <p>Greenwich Mean Time. HTTP dates are always expressed in GMT, never in local time.</p>
 </dd>
</dl>

<h2 id="Examples">Examples</h2>

<pre>
If-Range: Wed, 21 Oct 2015 07:28:00 GMT 
</pre>

<h2 id="Specifications">Specifications</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Title</th>
  </tr>
  <tr>
   <td>{{RFC("7233", "If-Range", "3.2")}}</td>
   <td>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility">Browser compatibility</h2>

<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>

<p>{{Compat}}</p>

<h2 id="See_also">See also</h2>

<ul>
 <li>{{HTTPHeader("ETag")}}</li>
 <li>{{HTTPHeader("Last-Modified")}}</li>
 <li>{{HTTPHeader("If-Modified-Since")}}</li>
 <li>{{HTTPHeader("If-Unmodified-Since")}}</li>
 <li>{{HTTPHeader("If-Match")}}</li>
 <li>{{HTTPHeader("If-None-Match")}}</li>
 <li>{{HTTPStatus("206")}}<code> Partial Content</code></li>
 <li><a href="/en-US/docs/Web/HTTP/Conditional_requests">HTTP Conditional Requests</a></li>
</ul>
Revert to this revision