Informational · 1xx

100 Continue

The server has received the request headers and the client should proceed to send the request body.

What 100 Continue means

100 Continue is part of HTTP's expectation handshake. Before a client sends a large request body, it can include the header Expect: 100-continue. The server inspects the request headers and replies with 100 if it is willing to accept the body, or with a final status (like 401 or 413) if it is not. This avoids the client wasting bandwidth uploading a body that will be rejected.

When servers should return it: Servers return 100 in response to an Expect: 100-continue header on a request that will be accepted. If the server has no opinion or the request body is small, it can skip the dance entirely.

Example response

curl -v -H "Expect: 100-continue" -d @big.json https://api.example.com/upload

Related status codes

Frequently Asked Questions

When does a client send Expect: 100-continue?
Most HTTP libraries set it automatically for requests with a body larger than ~1KB. Curl sets it for any -d or -T upload by default.
What if the server never sends 100?
Clients implement a short timeout (typically 1 second) and proceed to send the body anyway. The handshake is best-effort.
Should I disable Expect: 100-continue?
Sometimes. Some servers and proxies handle it poorly and stall. To disable in curl: -H "Expect:". To disable in requests/Python: set headers["Expect"] = "".
Defined in: RFC 9110 · Class: 1xx Informational

More references

For a one-page reference of all HTTP status codes, see the HTTP cheat sheet. For testing API responses, try the API Tester tool. For inspecting responses on the command line, the curl cheat sheet covers the most common flags.