Bedeutung
Der Server wechselt auf das Protokoll, das der Client im Upgrade-Header angefordert hat, meist WebSocket. Nach dieser Antwort spricht die Verbindung das neue Protokoll.
Typische Ursachen
- Ein WebSocket-Handshake war erfolgreich
- Der Client hat ein Upgrade auf h2c (unverschlüsseltes HTTP/2) angefordert
- Ein Upgrade auf ein eigenes Protokoll wurde akzeptiert
So beheben Sie es
Als Client oder Besucher
101 bedeutet bei WebSocket Erfolg. Erwarten Sie 101, erhalten aber 200 oder 400, prüfen Sie, ob die URL auf den WebSocket-Endpunkt zeigt und Proxys die Header Upgrade und Connection weiterleiten.
Als Betreiber der Website oder API
Hinter nginx oder einem Load Balancer Upgrade und Connection ausdrücklich weitergeben (proxy_set_header Upgrade $http_upgrade; Connection "upgrade") und Leerlauf-Timeouts für langlebige Sockets erhöhen.
Beispielantwort
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= Spezifikation
FAQ
› Warum liefert mein WebSocket 400 statt 101?
Die Handshake-Header fehlten oder wurden verändert, oft durch einen Proxy, der Upgrade/Connection entfernt, oder Sec-WebSocket-Key bzw. Version sind ungültig.
› Verwendet HTTP/2 den Code 101?
Nur beim seltenen unverschlüsselten h2c-Upgrade. Browser handeln HTTP/2 über TLS-ALPN aus, und HTTP/2 selbst kennt keine 101-Antwort.