100 Continue
This is an educational reference page about HTTP 100 Continue. The page itself is served as 200 OK so it can be indexed as HTTP documentation.
The server has received the request headers and the client should proceed to send the request body (in the case of a request for which a body needs to be sent; for example, a POST request). Sending a large request body to a server after a request has been rejected for inappropriate headers would be inefficient. To have a server check the request's headers, a client must send Expect: 100-continue as a header in its initial request and receive a 100 Continue status code in response before sending the body. If the client receives an error code such as 403 (Forbidden) or 405 (Method Not Allowed) then it should not send the request's body. The response 417 Expectation Failed indicates that the request should be repeated without the Expect header as it indicates that the server does not support expectations (this is the case, for example, of HTTP/1.0 servers).
Specification
Registered in the IANA HTTP Status Code Registry as Continue. Defined in RFC 9110, Section 15.2.1.
What it means
HTTP 100 Continue is an interim response that tells the client it can send the request body.
Common causes
- A client sends Expect: 100-continue before uploading a request body.
- The server has accepted the request headers and is ready for the body.
- A proxy or gateway forwards an interim response before the final response is available.
How to fix it
- Send the request body after receiving 100 Continue.
- Do not treat 100 as the final result; wait for the final 2xx, 3xx, 4xx, or 5xx response.
- Disable Expect: 100-continue only when the client or server handles large uploads poorly.
Example response
HTTP/1.1 100 Continue
HTTP/1.1 201 Created
Content-Type: application/json
{"id":"upload_123"}
Developer notes
100 Continue is useful for large uploads because the server can reject bad headers before the client sends the body.
Questions
What does HTTP 100 Continue mean?
HTTP 100 means the request headers look acceptable and the client may continue by sending the request body.
Is 100 Continue a final response?
No. 100 Continue is informational. The client must still wait for the final HTTP response.
Header and content rules
What RFC 9110 says about every 1xx response, including 100, quoted from the RFC.
- MUST NOT (server; response): Do not send any 1xx response to an HTTP/1.0 client. When: The client uses HTTP/1.0. Table row
Since HTTP/1.0 did not define any 1xx status codes, a server MUST NOT send a 1xx response to an HTTP/1.0 client. RFC 9110 §15.2
- No keyword (sender; content): A 1xx response ends at its header section. It has no content and no trailers. Table row
A 1xx response is terminated by the end of the header section; it cannot contain content or trailers. RFC 9110 §15.2
- MUST (client; response handling): Parse one or more 1xx responses before the final response, even when none was expected. Table row
A client MUST be able to parse one or more 1xx responses received prior to a final response, even if the client does not expect one. RFC 9110 §15.2
- MUST (proxy; forwarding): Forward 1xx responses to the client. When: Unless the proxy itself requested the 1xx. Table row
A proxy MUST forward 1xx responses unless the proxy itself requested the generation of the 1xx response. RFC 9110 §15.2
The same rules are in the response obligations table and its JSON.