101 Switching Protocols

Das Übertragungsprotokoll wird gemäß Wunsch des Clients geändert.

Bedeutung

Der Client hatte seine Anfrage mit Upgrade-Kopfzeile geschickt, mit der ein anderes Protokoll spezifiziert wurde. Wunschgemäß ändert der Server das Übertragungsprotokoll und beginnt mit der Übertragung im neuen Protokoll. Dies kann z.B. ein Wechsel von HTTP zu HTTPS oder WebSockets sein.

Spezifikation von 101 Switching Protocols

Der 101 Switching Protocols HTTP Status Code zeigt an, dass der Server die Anfrage versteht und gewillt ist, dem Wunsch des Clients mittels Upgrade folge zu leisten, in dem das Protokoll für diese Verbindung angepasst wird. Der Server muss dazu eine eigene Upgrade-Kopfzeile in seiner Antwort erstellen, die anzeigt zu welchem Protokoll gewechselt wird. Diese Kopfzeile muss auf eine Leerzeile folgen, mit der die 101 Antwort terminiert wird.

Es wird davon ausgegangen, dass der Server nur dann bereit ist, die Protokolle zu wechseln, wenn dies von Vorteil ist. Beispielsweise wäre der Wechsel von einer alten zu einer neuen Version von HTTP von Vorteil. Auch der Wechsel zu einem synchronen Echtzeit-Protokoll kann von Vorteil sein, wenn Ressourcen zurückgeliefert werden, die dessen Funktionen nutzen.

Spezifiziert wird 101 Switching Protocols durch Abschnitt 6.2.2. von RFC7231

Ausprobieren

🔧 Erzeuge eine Antwort mit dem HTTP Status Code 101

🔦 Checke den Status Code, die Anwort-Kopfzeilen und Weiterleitungsketten einer URL

Unterhaltsames

🐈 HTTP-Katze zu 101

🐩 HTTP Status Hund zu 101

HTTP-Versionen

  • HTTP 1.1
  • HTTP 2
  • HTTP 3

👩‍💻Konstanten in Programmiersprachen

Ruby on Rails HTTP Status Symbol
 :switching_protocols

Microsoft Windows Runtime API
HttpStatusCode.SwitchingProtocols

Go HTTP Status Constant
 http.StatusSwitchingProtocols

Symfony HTTP Status Constant
 Response::HTTP_SWITCHING_PROTOCOLS

Python2 HTTP Status Constant
 httplib.SWITCHING_PROTOCOLS

Python3+ HTTP Status Constant
 http.client.SWITCHING_PROTOCOLS

Python3.5+ HTTP Status Constant
 http.HTTPStatus.SWITCHING_PROTOCOLS