100 Continue

The server got the request headers; the client should send the body.

When to use it

Sent automatically when a client asks with Expect: 100-continue.

Good to know

Clients send Expect: 100-continue before a large upload so the server can reject it, for example with 401 or 413, before the body travels over the network. curl adds the header automatically for larger POST and PUT bodies; disable it with curl -H Expect: if a server or proxy mishandles it. Browsers never send Expect, so you only meet 100 with HTTP libraries and command-line tools.

If the server never answers with 100, curl waits one second by default (--expect100-timeout) and then sends the body anyway, which shows up as an unexplained one-second delay on every upload through some proxies. nginx sends 100 automatically when it starts reading the body, and Node.js emits a checkContinue event you can handle yourself. A server may also skip 100 and reply with the final status straight away.

Informational (1xx)

1xx codes are informational: the server has received the request and the exchange continues. Browsers and HTTP libraries handle them for you.

What it looks like

HTTP/1.1 100 Continue

How to check it

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Open HTTP Status Codes