Ihr Browser ist veraltet
Um sicher im Internet zu surfen und moderne Websites richtig darzustellen, empfehlen wir Ihnen ein Update.
Hier auf Updates prüfen
schließen

07.03.2023

WebSockets

WebSockets

WebSocket ist ein Netzwerkprotokoll, welches den Kommunikationsablauf und Datenaustausch zwischen Netzwerken, so beispielsweise auch zwischen Browser und Webserver, definiert. Es läuft über die Ports 80 und 443. Der Name geht auf die Endpunkte der Netzwerke zur Kommunikation zurück, die im Englischen auch Sockets genannt werden. Basierend auf dem TCP-Protokoll (Transmission Control Protocol) ist das WebSocket-Protokoll bidirektional und asynchron, das heißt Daten können gleichzeitig in zwei Richtungen übermittelt werden. Somit ist es möglich, Daten nahezu in Echtzeit zu übertragen. Während die Kommunikation über HTTP aus Frage und Antwort besteht und eine feste Reihenfolge vorgibt, hat dies eine für unser heutiges Verständnis eher hohe Latenzzeit zur Folge.

Exkurs: Polling

Diese starre Frage-Antwort-Struktur ist auch unter Polling bekannt. Es handelt sich um ein Netzwerk-Zugriffsverfahren, wie es beispielsweise bei der Netzwerkkommunikation zwischen Browser und Webserver über HTTP der Fall ist. Hierbei fragt der Client den Server in bestimmten Abständen nach neuen Informationen ab. Der springende Punkt: Die Kommunikation kann nur einseitig vom Browser initiiert werden. Der Webserver ist nicht in der Lage, die Kommunikation selbst anzustoßen – sie erfolgt unidirektional nur auf Anfrage des Browsers hin.

Ablauf der Kommunikation über WebSockets

Zu Beginn sendet der Browser eine HTTP Get-Anfrage um die Kommunikation anzustoßen. Zusätzlich wird ein Wechsel auf das WebSocket-Protokoll angefragt. Antwortet der Server mit dem HTTP-Statuscode 101 – Switching Protocols – wird von da an über das neue WebSocket-Protokoll kommuniziert. Nun bleibt der Kommunikationskanal offen und der Server kann auch ohne vorherige Anfrage des Browsers Daten senden. Die Kommunikation erfolgt bidirektional.

Die Initiierung der Kommunikation über WebSockets sieht folgendermaßen aus:

Der Client stellt den GET-Request und fragt ein Upgrade auf das neue Protokoll an:

Führt der Server den Wechsel aus, sieht seine Antwort in der Regel so aus:

Diese Initiierung der Kommunikation über WebSockets wird auch als Handshake bezeichnet.

Anwendungsfälle

Durch die Möglichkeit der gleichzeitigen Kommunikation zwischen Client und Server kann die Übertragungsgeschwindigkeit signifikant erhöht und die Latenzzeit auf ein Minimum reduziert werden. Dies ist vor allem relevant für Nachrichtenticker, Messengerdienste, Onlinespiele und Online-Auktionen.

2011 wurde durch das World Wide Web Consortium (W3C) ein WebSockets-Standard eingeführt. W3C ist ein 1994 von Tim Berners-Lee gegründetes Gremium zur Standardisierung von Techniken im Internet. Auch die RFC (Request for Comments) bietet unter den Nummern 6455, 7936, 8307, 8441 einen guten Überblick über die Spezifikationen.

Unterschiede HTTP und WS

HTTP und WS sind beides Kommunikations-Protokolle für die Client-Server-Kommunikation. Sie legen unter anderem den Syntax, das Error-Handling und die Kommunikationsmethoden fest. Dennoch gibt es große Unterschiede:

HTTP WS
Unidirektional     Bidirektional
Vergleichsweise hohe Latenzzeit Hohe Übertragungsgeschwindigkeit
Der Kommunikationskanal wird nach einem Frage-Antwort-Satz immer geschlossen Der Kommunikationskanal bleibt offen bis der Client oder der Server diesen schließt
Kommunikation wird immer vom Browser angestoßen Der Server kann auch ohne Anfrage des Browsers Daten senden
Eignet sich für die Übertragung starrer Daten Eignet sich für die Übertragung von Live-Daten

Quellen

https://www.rfc-editor.org/rfc/rfc6455

https://websockets.spec.whatwg.org//

https://de.ryte.com/wiki/Websocket

https://www.bigdata-insider.de/was-ist-websocket-a-1042523/

https://www.ionos.de/digitalguide/websites/web-entwicklung/was-ist-websocket/

Kontakt

Für Ihre Fragen, Anregungen und Anmerkungen haben wir immer ein offenes Ohr.

Sie können uns natürlich auch telefonisch erreichen:
034298 / 208 478

Erfahrungen & Bewertungen zu norules-webdesign