The Range
HTTP request header indicates the part of a document that the server should return. Several parts can be requested with one Range
header at once, and the server may send back these ranges in a multipart document. If the server sends back ranges, it uses the 206
Partial Content
for the response. If the ranges are invalid, the server returns the 416
Range Not Satisfiable
error. The server can also ignore the Range
header and return the whole document with a 200
status code.
Header type | Request header |
---|---|
Forbidden header name | no |
Syntax
Range: <unit>=<range-start>- Range: <unit>=<range-start>-<range-end> Range: <unit>=<range-start>-<range-end>, <range-start>-<range-end> Range: <unit>=<range-start>-<range-end>, <range-start>-<range-end>, <range-start>-<range-end> Range: <unit>=-<suffix-length>
Directives
- <unit>
- The unit in which ranges are specified. This is usually
bytes
.
- <range-start>
- An integer in the given unit indicating the beginning of the request range.
- <range-end>
- An integer in the given unit indicating the end of the requested range. This value is optional and, if omitted, the end of the document is taken as the end of the range.
- <suffix-length>
- An integer in the given unit indicating the number of units at the end of the file to return.
Examples
Requesting three ranges from the file.
Range: bytes=200-1000, 2000-6576, 19000-
Requesting the first 500 and last 500 bytes of the file. The request may be rejected by the server if the ranges overlap.
Range: bytes=0-499, -500
Specifications
Specification | Title |
---|---|
RFC 7233, section 3.1: Range | Hypertext Transfer Protocol (HTTP/1.1): Range 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.
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Range | Chrome Full support Yes | Edge Full support 12 | Firefox Full support Yes | IE Full support Yes | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android Full support Yes | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes |
Legend
- Full support
- Full support
See also
If-Range
Content-Range
Content-Type
206
Partial Content
416
Range Not Satisfiable