Developer Tools

HTTP 206 Partial Content

2xx Success. The server is delivering only part of the resource due to a range header sent by the client.

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.

PropertyDetail
Status class2xx Success
Defined inRFC 9110, Section 15.3.7
Cacheable by defaultYes. 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 actNo 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: 1048576

The 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

Sources

Other 2xx Success codes

Reviewed by Raja Jahangir · Last reviewed: October 7, 2026