Continue
The server has received the request headers and the client should proceed to send the request body.
What it means
The HTTP 100 Continue informational status response code indicates that everything so far is OK and that the client should continue with the request or ignore it if it is already finished.
This status code is primarily used as an optimization. It allows a client to check if the server is willing to accept a large request body before actually transmitting it over the network, saving bandwidth and time if the server would reject it anyway (e.g., due to authentication failure or size limits).
How it works
- 1The client sends an initial request containing only the headers, including 'Expect: 100-continue'.
- 2The server evaluates the headers.
- 3If the server rejects the request (e.g. 401 Unauthorized), it responds with an error code and closes the connection.
- 4If the server accepts the headers, it responds with '100 Continue'.
- 5The client then proceeds to upload the full request body.
Why you're seeing this
- • The client explicitly requested it by sending the 'Expect: 100-continue' header.
How to fix it
- • If you are a client and receiving this, simply proceed to send the request body.
- • If you are a server and receive 'Expect: 100-continue', you MUST either respond with 100 Continue (if accepting) or a final status code like 4xx/5xx (if rejecting).
Framework Implementations
Node.js (http)
const server = http.createServer();
server.on('checkContinue', (req, res) => {
// Accept the request
res.writeContinue();
req.pipe(processUploadStream());
});Go (net/http)
// Go's net/http server automatically handles 'Expect: 100-continue'
// when the handler reads from the request body.
func handler(w http.ResponseWriter, r *http.Request) {
body, _ := io.ReadAll(r.Body) // This triggers the 100 Continue automatically
}Real-Life Scenarios
Use this status code when you are building an API that handles very large file uploads or processes where you want to validate permissions and metadata before forcing the client to upload massive amounts of data.
Large Video Uploads to S3/Cloud Storage
A user is trying to upload a 4GB 4K video from their phone. The client checks if the server will accept it before sending data.
Authentication-Gated File Servers
Preventing an unauthenticated user from uploading a large payload only to be rejected with a 401 Unauthorized after 10 minutes of uploading.
Strict Rate Limiting
APIs that process massive data streams can check rate limits on headers before accepting the data body, avoiding bandwidth waste for users who have exceeded their quotas.
HTTP Transaction
1. Client Request
POST /upload-large-video HTTP/1.1 Host: api.example.com Content-Type: video/mp4 Content-Length: 536870912 Expect: 100-continue Authorization: Bearer my-secret-token
2. Server Response
HTTP/1.1 100 Continue
(Client then sends the 512MB video body...)
HTTP/1.1 201 Created
Content-Type: application/json
{"status": "success", "fileId": "vid_123"}SEO Implications
Informational responses (1xx) are intermediate responses strictly between the client/browser and the server. They have absolutely no impact on Search Engine Optimization or crawling behavior.