HTTP 100 Continue is an interim response indicating that the initial part of the request has been received and the client should continue with the request body. This is typically used when a client sends an Expect: 100-continue header to check if the server will accept the request before sending a large body.
100 ContinuePOST /upload/photo HTTP/1.1
Host: www.example.com
User-Agent: curl/8.6.0
Content-Type: image/jpeg
Content-Length: 2097152
Expect: 100-continueHTTP/1.1 100 Continue
<browser sends photo data>
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 312
<!doctype html>
<html lang="en">
<head>
<title>Upload successful</title>
</head>
<body>
<h1>Photo uploaded</h1>
<p>Your photo has been saved successfully.</p>
</body>
</html>100 Continue is an expected part of HTTP protocol negotiation and does not indicate an error.
Verify that the server sends a final response (2xx, 4xx, etc.) after the 100 Continue.
curl -v -H 'Expect: 100-continue' https://example.com/upload
Some servers or proxies do not handle 100 Continue properly. Remove the Expect header to skip the interim response.
curl -H 'Expect:' -X POST -d @file.dat https://example.com/upload
The client is checking whether the server will accept the request body before transmitting it, which is normal behavior for large uploads.
An intermediary is passing through the 100 Continue response from the origin server to the client.
| Specification | Section |
|---|---|
| HTTP Semantics | RFC 9110 §15.2.1 |
This reference was compiled from official RFCs, protocol specifications, and hands-on troubleshooting experience. AI tools were used primarily for formatting and organizing the content on the page.