HTTP 101 Switching Protocols vs 412 Precondition Failed
HTTP 101 (Switching Protocols) is a 1xx Informational response, while 412 (Precondition Failed) is a 4xx Client Error response. 101 indicates that the server understands the Upgrade header field request and indicates which protocol it is switching to. In contrast, 412 means that one or more conditions in the request headers (If-Match, If-Unmodified-Since) evaluated to false.
Description
The server understands the Upgrade header field request and indicates which protocol it is switching to.
When You See It
When upgrading from HTTP/1.1 to WebSocket, or to HTTP/2.
How to Fix
This is normal behavior during protocol upgrades. Ensure your client supports the target protocol.
Description
One or more conditions in the request headers (If-Match, If-Unmodified-Since) evaluated to false.
When You See It
When using conditional requests with ETags and the resource has changed.
How to Fix
Refresh the ETag/Last-Modified value and retry with updated preconditions.
Key Differences
101 is a 1xx Informational response, while 412 is a 4xx Client Error response.
HTTP 101: The server understands the Upgrade header field request and indicates which protocol it is switching to.
HTTP 412: One or more conditions in the request headers (If-Match, If-Unmodified-Since) evaluated to false.
You encounter 101 when when upgrading from HTTP/1.1 to WebSocket, or to HTTP/2.
You encounter 412 when when using conditional requests with ETags and the resource has changed.
When to Use Which
For 101 (Switching Protocols): This is normal behavior during protocol upgrades. Ensure your client supports the target protocol. For 412 (Precondition Failed): Refresh the ETag/Last-Modified value and retry with updated preconditions.