100 Continue
An interim response used with the Expect: 100-continue handshake, letting a client withhold a large body until the server confirms the headers are acceptable.
What it means
100 Continue is a provisional (1xx) response. When a client sends Expect: 100-continue with its request headers and pauses before sending the body, the server replies 100 Continue to signal that the headers passed initial checks and the body may now be sent. The final status (e.g. 200 or 201) arrives after the body.
HTTP EXCHANGE
> PUT /upload HTTP/1.1
> Expect: 100-continue
> Content-Length: 41231234
< HTTP/1.1 100 Continue
> [body bytes...]
< HTTP/1.1 201 CreatedWhy it matters
- It avoids wasting bandwidth: a server can reject an oversized or unauthorized upload with 4xx before the multi-megabyte body is transmitted.
- Well-behaved HTTP/1.1 clients (curl, many libraries) implement the Expect handshake automatically for large bodies.
Common mistakes
- Servers or proxies that ignore Expect: 100-continue and never send the interim response, causing clients to stall until a timeout before sending the body anyway.
- Application code that reads the final status but not the interim 100, mishandling the two-phase exchange.
How WebInspect checks this
- WebInspect reports the final status of a request and notes the HTTP version, which governs whether 1xx interim responses are available.