# HTTP 206 Partial Content — Status Code Meaning & Examples

> 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
- Defined in: [RFC 9110 §15.3.7 — 206 Partial Content](https://www.rfc-editor.org/rfc/rfc9110.html#section-15.3.7)

## Example response

```http
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.

## FAQ

### 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.

## Related status codes

- [416 Range Not Satisfiable](https://www.devkult.com/http/416.md)
- [200 OK](https://www.devkult.com/http/200.md)
- [304 Not Modified](https://www.devkult.com/http/304.md)

Open the interactive page: https://www.devkult.com/http/206