What Is a 101 Status Code?
The server understands and is willing to comply with the client’s request, via the Upgrade header field 1, for a change in the application protocol being used on this connection.
The server MUST generate an Upgrade header field in the response that indicates which protocol(s) will be switched to immediately after the empty line that terminates the 101 response.
It is assumed that the server will only agree to switch protocols when it is advantageous to do so. For example, switching to a newer version of HTTP might be advantageous over older versions, and switching to a real-time, synchronous protocol might be advantageous when delivering resources that use such features.
101 CODE REFERENCES
Rails HTTP Status Symbol
Go HTTP Status Constant
Symfony HTTP Status Constant
Python2 HTTP Status Constant
Python3+ HTTP Status Constant
Python3.5+ HTTP Status Constant
101 status code example
Here is an example of a request and response for a 101 status code:
GET /example HTTP/1.1
HTTP/1.1 101 Switching Protocols
In this example, the client is requesting the /example resource from www.example.com using the HTTP/1.1 protocol. The client also requests to upgrade the protocol to TLS/1.2.
The server responds with a 101 status code, which indicates that the server is switching protocols as requested by the client. The server also includes the “Upgrade” and “Connection” headers to indicate that the protocol has been upgraded to TLS/1.2.
When should you use a 101 status code?
The 101 status code, “Switching Protocols,” should be used when the server receives a request that includes an “Upgrade” header indicating a protocol change. It indicates that the server is switching to the new protocol as requested by the client.
This status code is commonly used in WebSocket connections, where the initial request is an HTTP request to upgrade the connection to the WebSocket protocol. The server responds with a 101 status code and switches to the WebSocket protocol.
What are 1xx status codes?
The 1xx status codes are used to indicate informational messages about the request or response, and there are several different 100 status codes defined in the HTTP/1.1 specification, including:
- 100 Continue
- 101 Switching Protocols
- 102 Processing
- 103 Early Hints
The “100 Continue” status code is used to indicate that the client should continue sending the request body to the server. This is typically used when the request has a large body that is being sent in multiple parts, and the server wants to acknowledge receipt of each part.
- Learn about web development
- Learn about SEO
- Web development services from WebFX
- SEO services from WebFX
- MDN Web Docs