Runs in your browser. Your files and text never leave your device - nothing is uploaded.
2xx Success
What it means
The server is delivering only part of the resource due to a range header sent by the client.
| Property | Detail |
|---|---|
| Status class | 2xx Success |
| Defined in | RFC 9110, Section 15.3.7 |
| Cacheable by default | Yes. RFC 9110 lists it as heuristically cacheable, so a cache may reuse it without explicit freshness headers unless Cache-Control says otherwise. Only a cache that understands range requests may store a 206 (RFC 9111, Section 3), because it has to combine parts correctly. |
| Who needs to act | No one. It is the expected reply to a range request. |
What does HTTP 206 Partial Content mean?
HTTP 206 Partial Content means the server is returning only the byte range the client asked for in a Range header, not the whole file. Video and audio players use it to seek, and download managers use it to resume interrupted transfers. The Content-Range header states which bytes were sent and the total size.
How 206 Partial Content works
A client asks for part of a resource with a Range header, such as bytes=0-1023 for the first kilobyte, and a server advertises support with Accept-Ranges: bytes. A single-part 206 must include Content-Range, for example bytes 0-1023/146515, where the number after the slash is the full size. Several ranges requested at once come back as one multipart/byteranges body. RFC 9110 lets a server send less than was asked for, so a client must read Content-Range instead of assuming. If-Range makes resuming safe: the server sends the remaining bytes only if the file is unchanged, and otherwise sends the whole new file with 200.
Example 206 request and response
GET /videos/intro.mp4 HTTP/1.1
Host: media.example.com
Range: bytes=0-1048575
HTTP/1.1 206 Partial Content
Accept-Ranges: bytes
Content-Range: bytes 0-1048575/73400320
Content-Length: 1048576The first megabyte of a 70 MB file. Content-Length is the size of this part, not of the whole file; the total is after the slash in Content-Range.
When servers send 206 Partial Content
- A video or audio player seeking to a new position in a media file.
- A download manager, or curl -C -, resuming an interrupted transfer.
- PDF viewers that load the pages being displayed rather than the whole file.
- Clients splitting a large download into parallel ranges.
How to handle 206 Partial Content
If downloads will not resume or videos will not seek
- Check the response for Accept-Ranges: bytes. Without range support the server sends 200 and the whole file every time.
- Make sure a proxy, CDN or compression layer is not stripping the Range header or re-encoding the file.
If you serve files
- Enable byte-range support on your server or object store.
- Content-Range is not a CORS-safelisted header, so list it in Access-Control-Expose-Headers if browser code reads it cross-origin.
- Return 416 Range Not Satisfiable for ranges that lie entirely past the end of the file.
Related status codes
- 200 OK: What a server without range support sends: the full file, ignoring the Range header.
- 416 Range Not Satisfiable: None of the requested ranges can be served, for example because they start past the end of the file.
- 304 Not Modified: The cached copy is still valid, so no bytes are sent at all.
Frequently asked questions
The server is delivering only part of the resource due to a range header sent by the client.
Returned for range requests, commonly used for resuming downloads or streaming video/audio.
No fix needed - expected behavior for range-based requests.
Because the browser asked for a byte range, so it can start playing or seek without downloading the whole file. A 206 is the correct, successful answer to that Range request, not an error.
Sources
Other 2xx Success codes
Reviewed by Raja Jahangir · Last reviewed: October 7, 2026
