206 Partial Content

The server is returning only the byte ranges the client asked for in the Range header.

Status

HTTP/1.1 206 Partial Content

Details

206 powers resumable downloads and media seeking. The client sends Range: bytes=start-end, the server answers 206 with just that slice and a Content-Range header describing which slice it is and how large the whole representation is. Video players use this constantly to jump around a file without downloading it.

A multi-range request produces a multipart/byteranges body with one part per range. If the requested range is outside the size of the resource, the correct answer is 416 rather than 206.

Headers

Common causes

How to fix it

As the client

As the server

Examples

GET /video/clip.mp4 HTTP/1.1
Host: media.example.com
Range: bytes=1048576-2097151

HTTP/1.1 206 Partial Content
Content-Type: video/mp4
Content-Range: bytes 1048576-2097151/52428800
Content-Length: 1048576

Notes for proxy users

Range requests are the cheapest way to test throughput through a proxy without pulling an entire file, and they let a scraper fetch just the header bytes of a large asset to identify it.

Specifications

RFC 9110 §15.3.7

See also