Expect

The Expect HTTP request header indicates expectations that need to be met by the server to handle the request successfully.

Upon Expect: 100-continue, the server responds with:

  • 100 (Continue) if the information from the request header is sufficient to cause immediate success
  • 417 (Expectation Failed) if the server cannot meet the expectation

or any other 4xx status otherwise.

For example, the server may reject a request if its Content-Length is too large.

No common browsers send the Expect header, but some other clients such as cURL do so by default.

Syntax

Expect: 100-continue

Directives

There is only one defined expectation:

100-continue

Informs recipients that the client is about to send a (presumably large) message body in this request and wishes to receive a 100 (Continue) interim response.

Examples

Large message body

A client sends a request with Expect header and waits for the server to respond before sending the message body.

PUT /somewhere/fun HTTP/1.1
Host: origin.example.com
Content-Type: video/h264
Content-Length: 1234567890987
Expect: 100-continue

The server checks the headers and generates the response. The server sends 100 (Continue), which instructs the client to send the message body.

Specifications

Specification
Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
# header.expect

Browser compatibility

BCD tables only load in the browser

See also