100 Continue
The server has received the request headers, and the client should proceed to send the request body.
Usually happens because:
- ☑ Client sent 'Expect
- ☑ Proxy server intermediate validation checks
🔍 Quick Checklist:
Meaning
The HTTP 100 Continue informational status code indicates that everything so far is OK and that the client should continue the request or ignore the response if the request is already finished.
Root Causes
- Client sent 'Expect: 100-continue' header to verify server acceptance before uploading large file payload body data.
- Proxy server intermediate validation checks passing authentication headers successfully.
| Cause | Frequency |
|---|---|
| Client sent 'Expect | ⭐⭐⭐⭐⭐ |
| Proxy server intermediate validation checks | ⭐⭐⭐⭐ |
Common Mistakes
- Client sending the body payload immediately without waiting for the 100 Continue response.
- Server rejecting 100-continue headers due to proxy timeout limits.
How to Fix
Framework-Specific Examples
Handling expect headers in Express server applications.
const express = require('express');
const app = express();
app.post('/upload', (req, res) => {
res.status(200).send('Upload completed');
});Server Configuration Examples
Setting buffer and client body size thresholds to handle expect operations.
server {
client_max_body_size 10M;
client_body_buffer_size 128k;
}Prevention
- Verify intermediate load balancers support HTTP Expect headers correctly.
- Ensure client libraries timeout gracefully if the server fails to return 100.
Frequently Asked Questions (FAQ)
Q: What is the main purpose of 100 Continue?
It allows clients to check if the server will accept a large request (based on headers like authentication or content-length) before sending the actual body, saving bandwidth and processing time.
Q: Does standard Axios support 100-continue automatically?
Yes, Node.js HTTP client layers manage Expect headers, but explicit configuration may be needed in web browser clients since browsers stream uploads differently.
Q: Can Nginx intercept and return 100-continue?
Yes, Nginx handles 100-continue handshakes automatically on behalf of upstream servers to prevent unauthenticated payload streaming.
Q: Is there a performance downside to using 100 Continue?
Yes. It adds an extra network round-trip for headers checking, which can slow down small payload requests. It should only be used for large uploads.