devkult_
tools29converters34

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.

Class2xx Success
Retry?Not applicable
Cacheable by defaultYes (heuristically, per RFC 9110)
Response bodyAllowed
Defined inRFC 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

  1. To support ranges, advertise Accept-Ranges: bytes and honour Range. Most static file servers and CDNs already do.
  2. A range that lies outside the file should get 416 Range Not Satisfiable.
  3. Clients resuming downloads should send If-Range with 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