Standard 1xx Informational HTTP Status Codes
What Are HTTP 1xx Status Codes?
HTTP 1xx status codes are informational responses that report progress or protocol handling before a server sends the final response. A 1xx response does not normally mean that the request succeeded or failed; the client must continue waiting for a non-1xx response.
An interim response can tell the client to continue a request, confirm a protocol change, report that lengthy processing is underway, or provide early resource hints. The final response will usually belong to another status-code class, such as 2xx, 3xx, 4xx, or 5xx.
Informational responses are part of the HTTP message exchange, but they are not displayed as ordinary result pages. A browser or API library may process them internally, while a debugging tool, proxy log, or network trace may show them as separate responses.
What Are the Standard HTTP 1xx Informational Codes?
The list of standard HTTP 1xx status codes contains four established codes:
- 100 Continue: The server has received the initial request information and indicates that the client can continue sending the request body. It is commonly associated with the Expect: 100-continue request header. The server still sends a final response after receiving or rejecting the complete request.
- 101 Switching Protocols: The server agrees to change protocols as requested through the HTTP Upgrade mechanism. The response identifies the protocol selected for the connection. This mechanism applies to HTTP/1.1; newer HTTP versions use different mechanisms and do not handle 101 in the same way.
- 102 Processing: The server has received the complete request and is still processing it, but no final response is ready. This WebDAV status can help indicate that a lengthy operation remains active. It does not guarantee that the operation will ultimately succeed.
- 103 Early Hints: The server sends selected response headers before the final response, allowing a client to begin preparatory work such as preloading resources. The final response can contain different headers and remains authoritative.
These standard HTTP 1xx informational codes have specific meanings. Unassigned numbers in the 1xx range should not be given invented definitions, and experimental or temporarily registered responses should not be presented as permanent standard informational HTTP responses.
How Do Clients Handle HTTP 1xx Responses?
A client normally treats an HTTP 1xx informational response as an intermediate message and continues reading until it receives the final response. Correct handling depends on the HTTP version, the code involved, and the client implementation.
- Browsers: Browsers usually handle informational responses internally. For example, a browser may act on supported 103 hints without showing a separate page to the user.
- API clients: Libraries may hide interim responses and return only the final status. Lower-level libraries, event hooks, or debugging modes may expose each response separately.
- Proxies and gateways: An intermediary may forward, process, ignore, or generate certain informational responses according to the protocol rules and its configuration.
- Command-line and diagnostic clients: These tools may print both the interim response and the final response, which can make one request appear to have produced several status lines.
Clients must not treat every 1xx response identically. A 100 response controls whether a request body proceeds, while a 103 response supplies early hints. Support also varies across HTTP versions, libraries, proxies, and server stacks.
When Do Servers Send Informational Responses?
A server may send an informational response after receiving a request but before deciding or communicating the final outcome. The server can send more than one interim response when the protocol and situation permit it.
A typical 100 Continue exchange follows this order:
- The client sends request headers and asks whether it should continue.
- The server sends 100 Continue if the client may transmit the request body.
- The client sends the body.
- The server sends the final response after handling the request.
A server may instead send a final error response without sending 100 if it can reject the request from the headers alone. For 102 Processing, the interim message reports ongoing work. For 103 Early Hints, it provides preliminary headers while the server prepares the final result. A 101 response is different because it marks an agreed change away from the current HTTP protocol on that connection.
No 1xx response replaces the required final response, except that a successful 101 transition changes how subsequent data on the connection is interpreted.
What Should You Check When an Unexpected 1xx Response Appears?
When an unfamiliar, repeated, or improperly handled informational response appears, capture the complete exchange before changing application logic. The final response often explains whether the request actually succeeded or failed.
- Confirm the exact status code and do not infer a meaning from the 1xx class alone.
- Check whether a final non-1xx response follows. A client that stops after the interim response may have a parsing, timeout, or connection-handling problem.
- Record the HTTP version used on each connection segment. Client-to-proxy and proxy-to-server connections can use different versions.
- Inspect request headers such as Expect and Upgrade, because they can explain 100 or 101 responses.
- Compare behavior with and without reverse proxies, gateways, content delivery layers, or load balancers. An intermediary may be generating, removing, or mishandling the response.
- Update or reconfigure the HTTP library if its documentation shows limited support for the observed code. Do not assume browser behavior and API-client behavior will match.
- For repeated 102 responses, check whether the underlying operation is genuinely long-running and whether client or intermediary timeouts expire before the final response.
- For 103 responses, verify that the client treats the headers as hints and relies on the final response for the completed header set and status.
How Are 1xx Responses Different From Other HTTP Status Classes?
The meaning of 1xx informational status codes is different from every final response class:
- 1xx Informational: Reports interim progress, instructions, or protocol information before completion.
- 2xx Successful: Indicates that the request was successfully received, understood, or processed as specified by the particular code.
- 3xx Redirection: Indicates that further action or another resource location may be involved.
- 4xx Client Error: Indicates a problem associated with the request, authorization, resource, or other client-side condition.
- 5xx Server Error: Indicates that the server failed to fulfill an apparently valid request.
The key distinction is finality: HTTP 1xx informational response codes normally keep the exchange open, while a 2xx, 3xx, 4xx, or 5xx response normally provides the final status for that request.