100 100 Continue
The server has received the request headers and the client should proceed to send the request body.
What Is This?
The HTTP 100 Continue status code indicates that the server has received the initial part of the request (the headers) and the client should continue with sending the body. It is part of the HTTP/1.1 expect/continue mechanism that allows clients to avoid sending large request bodies when the server will reject them based on headers alone.
Common Causes & Solutions
Common Cause
Server configured to expect the Expect: 100-continue header
Common Cause
Client sending Expect: 100-continue to check server availability before uploading
Common Cause
Proxy or gateway relaying the 100 Continue response between client and server
Handle 100 Continue in clients
When your client receives 100 Continue, proceed to send the request body. If you do not receive 100 Continue within a timeout, you may either send the body anyway or abort the request.
Server configuration
Configure your server to send 100 Continue for requests with Expect: 100-continue header. The response should be sent immediately after validating request headers.
# Nginx: expect_continue is enabled by default
# Apache: SetEnvIf Expect "100-continue" expect_continue
# Node.js (Express): 100-continue is handled automatically
app.use((req, res, next) => {
if (req.headers.expect === '100-continue') {
res.writeContinue()
}
next()
})Troubleshoot missing 100 Continue
If your client expects 100 Continue but never receives it, check for proxy servers or load balancers that may strip the Expect header. Ensure HTTP/1.1 is used (HTTP/1.0 does not support 100 Continue).
Related Entries
More from this reference:
Frequently Asked Questions
Should I always wait for 100 Continue before sending the body?
No. For small request bodies, it is more efficient to send the body immediately. The 100 Continue mechanism is designed for large payloads where the cost of sending the body and having it rejected is significant.
Does HTTP/2 support 100 Continue?
HTTP/2 does not use the Expect/Continue mechanism. Instead, server push and stream prioritization handle similar optimization scenarios. Most HTTP/2 clients skip 100 Continue entirely.