DevToolsmith

HTTP 206 Partial Content

HTTP 206 Partial Content means the server is returning only the byte range the client asked for. The request was received, understood and accepted.

Class
2xx Success
Standard
RFC 9110
Cacheable by default
Yes
Safe to retry
Not applicable: this isn’t an error
Go constant
http.StatusPartialContent

What HTTP 206 means

When a client sends a Range header, the server can return just that part of the file with 206 and a Content-Range header. This is how video seeking, resumable downloads (curl -C -, wget -c) and parallel download managers work. Servers advertise support with Accept-Ranges: bytes.

Using 206 correctly

  • If a range is impossible, like starting past the end of the file, the server returns 416 instead.

Retrying

Not applicable: this isn’t an error.

Example response

HTTP/1.1 206 Partial Content
Date: Wed, 21 Oct 2026 10:30:00 GMT
Content-Range: bytes 0-1023/146515
Content-Length: 1024
Accept-Ranges: bytes

How to return 206

Node.js (Express)
res.status(206).json(result);
Python (FastAPI)
@app.post("/items", status_code=206)
def create_item(item: Item):
    return item
Go (net/http)
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusPartialContent)
json.NewEncoder(w).Encode(result)

Related status codes

Other 2xx status codes

200 OK · 201 Created · 202 Accepted · 203 Non-Authoritative Information · 204 No Content · 205 Reset Content · 207 Multi-Status

See the full list of HTTP status codes.

Sources

Spotted a mistake? Email hello@devtoolsmith.com and we’ll fix it.

Frequently asked questions

What does HTTP 206 Partial Content mean?

HTTP 206 Partial Content means the server is returning only the byte range the client asked for. When a client sends a Range header, the server can return just that part of the file with 206 and a Content-Range header. This is how video seeking, resumable downloads (curl -C -, wget -c) and parallel download managers work. Servers advertise support with Accept-Ranges: bytes.