100 Continue

HTTP response status code 100 Continue is one of the informational HTTP responses returned by the server. It indicates that the HTTP session is progressing as expected and is asking the client to continue to the next step. The client can safely ignore this HTTP response if the HTTP request is complete. The HTTP response is only sent when the client includes the HTTP header request field Expect.

Usage

Clients that include the Expect HTTP header request field want to ensure that the server is prepared to receive the message body before it is transmitted. For instance, if a message body is very large, is not of a type that is accepted by the server, or the user is not authorized to send files, this process can be used to validate these conditions in advance of sending the body.

Once the 100 Continue status code has been received, the message body can be sent. If alternatively, the server returns a 417 Expectation Failed HTTP response, then the client is not to continue.

The advantage to using the Expect HTTP header with 100-continue is to conserve bandwidth in situations where the server is particular about the content that it receives and processes.

The disadvantage to using this approach is that because the HTTP request header and body are sent independently, some environments are prone to having them separated and ultimately can return an error instead of processing the HTTP request.

Example

Request

PUT /docs HTTP/1.1
Host: www.example.re
Content-Type: application/pdf
Content-Length: 99000
Expect: 100-continue

Response

HTTP/1.1 100 Continue

Follow-up to request

<PDF file contents are sent as message body>

Final response

HTTP/1.1 200 OK

In the example, the client is planning to send a 99kb PDF file to the server for processing and indicates this in the HTTP request, asking for validation in advance. The server responds that it is okay, and the client sends the message body. As a final response, the server concludes the HTTP session with an indication of success.

Alternatively, the server may have initially responded with an HTTP status code error, such as:

HTTP/1.1 417 Expectation Failed

In this situation, then the client did not send the PDF, and further communication will take place starting with a new HTTP request.

Code references

.NET

HttpStatusCode.Continue

Rust

http::StatusCode::CONTINUE

Rails

:continue

Go

http.StatusContinue

Symfony

Response::HTTP_CONTINUE

Python3.5+

http.HTTPStatus.CONTINUE

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_CONTINUE

Angular

@angular/common/http/HttpStatusCode.Continue

Takeaway

The 100 Continue informational response status code is sent by the server to inform the client that their HTTP request is authorized to continue and the server awaits the client sending the message body.

See also

Last updated: August 2, 2023