1xx Informational
Imagine calling ahead before mailing a very heavy package: 'Can you accept this?' The post office says yes, so you drive it over. That's 100 Continue — the server greenlit the request headers, so send the rest of the data.
Use 100 as an interim response when a client asked whether it should continue sending the request body.
POST https://api.example.test/api/upload
# Headers
Expect: 100-continue
Content-Length: 52428800
Content-Type: video/mp4
# Body
<50 MB video file>201 Created
# Headers
Location: https://api.example.test/api/uploads/123
Content-Type: application/json
# Body
{
"id": "upload_123",
"status": "stored"
}Internally, the server sent 100 Continue after inspecting the headers; the client held the body until that approval arrived.
POST https://api.example.test/api/upload
# Headers
Expect: 100-continue
Content-Type: video/x-msvideo
Content-Length: 52428800
# Body
<50 MB video file>415 Unsupported Media TypeThe server rejected from headers alone — the body was never transmitted, saving 50 MB of bandwidth.
The server is saying, 'Let's keep talking, but switch to a different protocol for the rest of this connection.'
The server is saying, 'I’m still working on this. Don’t assume the request was lost just because it’s taking a while.'
WebDAVThe server is giving the browser a head start: 'You’ll probably need these files, so start getting them while I finish the real response.'