206 Partial Content
The server is returning part of the resource because the request carried a Range header. This is what makes resumable downloads and video seeking work.
At a glance
- Status code
- 206 Partial Content
- Class
- 2xx, success, the request was received and accepted
- Defined in
- RFC 9110
- Cacheable by default
- yes
- Response body
- The requested byte ranges only.
In detail
The client asked for bytes 1000 to 1999, and the server sent exactly those, with a Content-Range header saying which part of which total this is.
Required for media scrubbing and download resumption. A server that ignores Range and returns the whole file with 200 forces every seek to re-download from the start.
If video seeking does not work, check whether the server advertises Accept-Ranges: bytes and actually honours the header. Many static handlers advertise it and then ignore it.
Examples
HTTP/1.1 206 Partial Content
Content-Range: bytes 1000-1999/58432
Content-Length: 1000
Accept-Ranges: bytesThings that catch people out
- Content-Range counts bytes inclusively at both ends, so bytes 0-999 is 1000 bytes, not 999.
- A multi-range request returns multipart/byteranges, not a plain body. Clients that assume a single range will read the MIME boundaries as data.
Try it: HTTP Request Builder
Build a request with any method, headers and body, send it, and read the status line the server returns.
HTTP Request Builder
LOCAL · Browser-OnlyBuild and test HTTP requests with custom headers and body
Authentication
Headers
Generate Code
curl -X GET 'https://api.example.com/endpoint' \
-H 'Content-Type: application/json'Showing a sample URL. Enter your endpoint above to update the snippet.
Related HTTP status codes
All http status codes →200 OK
The request succeeded. What the body contains depends on the method: a GET returns the resource, a POST returns the result of the action.
416 Range Not Satisfiable
The Range header asked for bytes that lie outside the resource, for example bytes 5000 to 6000 of a 2KB file.
304 Not Modified
The cached copy the client already holds is still current, so the server sent no body. This is what makes conditional requests cheap.
207 Multi-Status
A WebDAV response carrying several independent status codes at once, one for each resource the request touched.
208 Already Reported
Inside a WebDAV multi-status response, this member was already listed earlier and its properties are not repeated.
226 IM Used
The server applied a delta encoding and is returning the difference from a version the client already has, rather than the whole resource.
Tools for this
- HTTP Request Builder Free online HTTP request builder - build and test HTTP requests with custom headers and body
- HTTP Headers Checker Free online HTTP headers checker - view HTTP response headers for any URL