100 Continue is an interim (informational) response. It tells the client that the server has received the request headers, has not rejected them, and is ready for the request body. The final response, for example 201 Created or 413 Content Too Large, follows later on the same connection.
It exists for large uploads. A client that does not want to send megabytes of data only to have them refused adds Expect: 100-continue to its request and waits briefly. If the server answers 100 Continue, the client sends the body. If the server answers with a final error such as 401 or 413, the client can skip the upload. A server that cannot meet the expectation may answer 417 Expectation Failed.
Browsers do not send Expect: 100-continue themselves. It is used by HTTP libraries, command-line tools such as curl and API clients that upload files. Clients do not wait forever: if no 100 arrives within a short timeout (one second by default in curl), they send the body anyway. Servers must not send 1xx responses to HTTP/1.0 clients.
Example response
HTTP/1.1 100 Continue
HTTP/1.1 201 Created
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: /uploads/7f3c9a2e
Content-Length: 0 SEO and redirect checking
A 100 never reaches search engines as a page status. It is always followed by a final response, and that final status is what crawlers and the redirect checker report. Interim responses are consumed by the HTTP client, so TrueURL shows the final status of each hop rather than any 100 Continue that came before it.
Common causes and use cases
- An API client or curl uploads a large body with
Expect: 100-continueand the server agrees to receive it. - A reverse proxy or application server answers the expectation on behalf of the application.
- Uploads stall for about a second before they start: the client is waiting for a
100 Continuethat the server never sends. Turn the expectation off in the client or support it on the server.