Wie funktionieren WebSockets?

WebSockets sind ein Kommunikationsprotokoll, das Vollduplex-Echtzeit-Kommunikationskanäle über eine einzige TCP-Verbindung bereitstellen soll. Im Gegensatz zu herkömmlichem HTTP, das einem Anforderungs-Antwort-Modell folgt, ermöglichen WebSockets eine kontinuierliche und bidirektionale Kommunikation zwischen einem Client und einem Server. Sobald eine WebSocket-Verbindung durch einen Handshake-Prozess hergestellt wurde, können Daten gleichzeitig in beide Richtungen ausgetauscht werden, ohne dass der Aufwand durch wiederholtes Öffnen und Schließen von Verbindungen entsteht.

Wie funktioniert ein WebSocket?

Eine WebSocket-Verbindung beginnt mit einem vom Client initiierten Handshake, bei dem eine HTTP-Anfrage an den Server gesendet wird, um die Verbindung von HTTP auf WebSocket zu aktualisieren. Wenn der Server WebSockets unterstützt, antwortet er mit dem Statuscode 101, der angibt, dass der Protokollwechsel akzeptiert wird. Nach diesem Handshake wird die WebSocket-Verbindung hergestellt und sowohl der Client als auch der Server können frei und asynchron Nachrichten aneinander senden. Dies reduziert die Latenz und verbessert die Effizienz im Vergleich zu herkömmlichen Abfragemethoden.

Eine WebSocket-Verbindung ist eine dauerhafte Verbindung, die das Senden und Empfangen von Daten in Echtzeit über eine einzige, langlebige TCP-Verbindung ermöglicht. Diese Verbindung beginnt mit einem HTTP-Handshake und ermöglicht, sobald sie hergestellt ist, eine Kommunikation mit geringer Latenz zwischen Client und Server. Die Verbindung bleibt offen, bis sie von einer Seite explizit geschlossen wird, was einen effizienten, kontinuierlichen Datenaustausch ermöglicht.

WebSocket arbeitet über das TCP-Protokoll und verwendet Port 80 für nicht sichere Verbindungen und Port 443 für sichere Verbindungen (wss://). Im Gegensatz zu HTTP, das für jede Anfrage eine neue Verbindung aufbaut, unterhält WebSocket eine einzige Verbindung, die für mehrere Nachrichten verwendet werden kann, wodurch der Overhead minimiert und die Leistung für Echtzeitanwendungen verbessert wird.

Die WebSocket-API bietet eine standardisierte Möglichkeit zur Interaktion mit WebSocket-Verbindungen in Webbrowsern. Es umfasst Methoden und Eigenschaften zum Herstellen einer Verbindung, zum Senden und Empfangen von Nachrichten sowie zum Behandeln von Ereignissen wie dem Öffnen einer Verbindung, dem Empfangen einer Nachricht und dem Schließen einer Verbindung. Die API ermöglicht Entwicklern die Erstellung von Echtzeit-Webanwendungen mit effizienten, bidirektionalen Kommunikationsfunktionen.