100 Continue

The server has read the request headers, found nothing wrong with them, and is ready for the client to send the request body.

Status

HTTP/1.1 100 Continue

Details

100 Continue answers a request that carried an Expect: 100-continue header. The client sends its headers, pauses, and waits for permission before uploading a body that may be large. If the server would reject the request outright (wrong content type, missing auth, body too large), it answers with a 4xx instead and the client never wastes bandwidth on the upload.

The 100 is interim: it is followed by the real final status on the same connection once the body has been received and processed. A client that sends Expect: 100-continue must not wait forever. RFC 9110 tells it to send the body anyway after a short timeout, because some servers and intermediaries ignore the expectation entirely.

Headers

Common causes

How to fix it

As the client

As the server

Examples

PUT /uploads/archive.tar HTTP/1.1
Host: api.example.com
Content-Length: 84213760
Expect: 100-continue

HTTP/1.1 100 Continue

HTTP/1.1 201 Created
Location: /uploads/archive.tar

Notes for proxy users

Forward proxies must pass interim responses through untouched. A proxy that buffers the whole response before forwarding will hide the 100 and stall clients that are waiting on it, which looks like an upload hang rather than a proxy bug.

Specifications

RFC 9110 §15.2.1

See also