HTTP status codes / 1xx — Informational

101 Switching Protocols

In one sentence

The server agrees to switch protocols, e.g. HTTP to WebSocket.

What it means

Sent in response to an Upgrade header. The classic case is the WebSocket handshake: the client sends Upgrade: websocket, the server answers 101, and the connection stops speaking plain HTTP from that point on.

Common causes

Reproduce it in cURL

curl -i -N -H 'Connection: Upgrade' -H 'Upgrade: websocket' -H 'Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==' -H 'Sec-WebSocket-Version: 13' https://echo.websocket.org/

Same request, no terminal: paste this into the cURL converter for native code, or straight into ReqPad on your phone.

How to debug it

If your WebSocket connection fails before 101 arrives, inspect the handshake request — missing Upgrade/Connection headers or an intermediary stripping them is the usual cause.

The fastest way to pin down a 101 is to reproduce the exact request and inspect what actually went over the wire — status, headers, timing and body, without your app code in the way. That is what an API client is for; ReqPad does it from your phone, with every request saved to history.

Related codes

100 Continue · 102 Processing · 103 Early Hints — or the full reference.

Reproduce that 101 in 10 seconds.

Build the request, send it, read status + headers + timing — on your iPhone. Free to start.