Partial Content
ActiveHTTP 206 Partial Content indicates the server is delivering only part of the resource due to a Range header sent by the client. Defined in RFC 9110 §15.3.7. Used for resumable downloads, video streaming, and large file transfers.
Description
The 206 Partial Content status code indicates that the server is successfully fulfilling a range request for the target resource by transferring one or more parts of the selected representation.
If a single part is being transferred, the response must include a Content-Range header field describing the range and content. If multiple parts are being transferred, the response uses multipart/byteranges content type.
Examples
GET /video.mp4 HTTP/1.1
Host: cdn.example.com
Range: bytes=0-999HTTP/1.1 206 Partial Content
Content-Range: bytes 0-999/8000000
Content-Length: 1000
Content-Type: video/mp4
[binary data: first 1000 bytes]Edge Cases
- •The server MUST include a Content-Range header indicating which bytes are being returned.
- •If the Range is invalid or unsatisfiable, the server should return 416 Range Not Satisfiable.
- •Servers that don't support range requests should ignore the Range header and return 200 with the full content.
- •Multipart ranges use Content-Type: multipart/byteranges with a boundary.
When You'll See This
- →HTML5 video player seeking to a specific timestamp
- →Resuming a failed large file download
- →PDF viewer loading pages on demand
- →CDN serving range requests for media files
Implementation References
| Language | Constant |
|---|---|
| Go | http.StatusPartialContent |
| Rust | http::StatusCode::PARTIAL_CONTENT |
| Python | http.HTTPStatus.PARTIAL_CONTENT |
| Node.js | http.STATUS_CODES[206] |
| .NET | HttpStatusCode.PartialContent |
| Java | HttpURLConnection.HTTP_PARTIAL |
History
Introduced in HTTP/1.1 (RFC 2068, 1997). Critical for modern media streaming and download resume functionality.
Related Status Codes
Related Headers
FAQ
How does HTTP 206 enable video streaming?
Video players send Range headers to request specific byte ranges. The server responds with 206 and just those bytes, allowing seeking without downloading the entire file.
How do resumable downloads work with 206?
When a download is interrupted, the client notes how many bytes it received. On retry, it sends Range: bytes=N- to resume from byte N. The server responds with 206 containing only the remaining bytes.