206 Partial Content
2xx success
The server is returning only the byte range the client asked for.
206 answers a Range request. Instead of the whole file, the server sends the requested slice with a Content-Range header such as bytes 0-1048575/52428800. It's what makes video seeking, resumable downloads and parallel download managers work.
| Class | 2xx Success |
|---|---|
| Retry? | Not applicable |
| Cacheable by default | Yes (heuristically, per RFC 9110) |
| Response body | Allowed |
| Defined in | RFC 9110 §15.3.7 — 206 Partial Content |
Example response
HTTP/1.1 206 Partial Content Content-Range: bytes 0-1023/146515 Accept-Ranges: bytes
When you'll see it
- A video or audio player seeking within a media file.
- A download manager resuming or splitting a download.
- PDF viewers fetching pages on demand.
How to use it well
- To support ranges, advertise
Accept-Ranges: bytesand honourRange. Most static file servers and CDNs already do. - A range that lies outside the file should get 416 Range Not Satisfiable.
- Clients resuming downloads should send
If-Rangewith the ETag, so a changed file restarts cleanly.
Check what a URL returns
Print just the status line from the command line, or check a whole list of URLs at once, with their response headers, in the HTTP Status Checker.
curl -sI https://example.com/your-path | head -n 1
Frequently asked questions
Why won't my video seek in Safari?
Safari requires byte-range support for media. If your server answers Range requests with a full 200, seeking — and often playback — fails. Serve media from something that returns 206.
Can a 206 contain several ranges?
Yes. A multi-range request gets a multipart/byteranges body, each part with its own Content-Range.
Headers used with 206
Related status codes