Statuscode 101 Switching Protocols

Was bedeutet der Statuscode 101 Switching Protocols?

Die Antwort eines Webservers mit HTTP Statuscode 101 Switching Protocols besagt, dass der Server die Anfrage versteht und bereit ist, die Anforderung des Clients über das Upgrade Header-Feld bezüglich einer Änderung des Anwendungsprotokolls zu erfüllen, das für diese Verbindung verwendet wird. Der Server muss in der Antwort an den Client ein Upgrade-Header-Feld generieren, das angibt, auf welches Protokoll beziehungsweise auf welche Protokolle unmittelbar nach der leeren Zeile, die die 101-Antwort beendet, umgeschaltet wird. Das HTTP-Protokoll stellt einen speziellen Mechanismus bereit, der es einer bereits hergestellten Verbindung ermöglicht, die Kommunikation auf ein neues, inkompatibles Protokoll zu aktualisieren. Der HTTP 101 Switching Protocols-Antwortcode gibt das Protokoll an, zu dem der Server wechselt, weil dies von einem Client, der die Nachricht einschließlich des Upgrade Headers der gesendet hat, angefordert wurde.

Antworten mit 101 Switching Protocols sind nicht immer vorteilhaft

Das Protokoll sollte nur umgeschaltet werden, wenn der Wechsel tatsächlich vorteilhaft ist. Beispielsweise ist das Wechseln zu einer neueren Version von HTTP gegenüber älteren Versionen vorteilhaft, auch die Umstellung auf synchrone Kommunikation unter Verwendung eines Echtzeitprotokolls kann sich als vorteilhaft erweisen, falls Ressourcen existieren, die entsprechende Features unterstützen. Es wird davon ausgegangen, dass der Server dem Wechsel nur dann mit Statuscode 101 Switching Protocols zustimmen wird, wenn dies als vorteilhaft angesehen werden kann.

Protokollwechsel nach Verbindungsaufbau

Dieser Mechanismus wird fast immer vom Client initiiert. Es gibt lediglich eine Ausnahme: Es ist möglich, dass der Server eine Aktualisierung auf TLS erfordert. Ein Server kann die Umstellung auf das neue Protokoll akzeptieren und eine Antwort mit 101 Switching Protocols senden oder ablehnen. Dies ermöglicht es, eine Verbindung mit einem häufig verwendeten Protokoll wie HTTP / 1.1 zu starten und anschließend den Wechsel der Verbindung zu HTTP / 2 oder sogar WebSockets anfordern. Es ist gängige Praxis, eine Verbindung aufgrund der breiten Unterstützung dieser Version unter Verwendung von HTTP / 1.1 zu starten und dann ein Upgrade auf HTTP / 2 anzufordern. Auf diese Weise besteht auch dann eine funktionierende Verbindung, wenn HTTP / 2 vom Server nicht unterstützt wird. Verbindungen können jedoch nur auf eine unsichere HTTP-Verbindung (Klartext) upgraden. Dies geschieht über den Zielprotokollnamen h2c, der für “HTTP / 2 Cleartext” steht. Dies erfordert zusätzlich die Angabe des Headerfelds HTTP2-Settings.


Sie haben noch Fragen?

Kontaktieren Sie uns

Free Account erstellen


Weitere Inhalte