F5-Glossar

WebSocket

WebSocket ist eines der im Internet verwendeten Kommunikationsprotokolle. Es ermöglicht eine bidirektionale Kommunikation zwischen Webservern und Clients. Das Protokoll wird von der Internet Engineering Task Force (IETF) als „RFC 6455“ definiert.

Das Web wurde ursprünglich für die Unterstützung von Hypertext konzipiert, hat sich jedoch seitdem in Richtung der Ermöglichung dynamischerer Applications weiterentwickelt. Eine häufig eingesetzte Technik, um dies zu erreichen, ist AJAX (Asynchronous JavaScript and XML), das XMLHttpRequest verwendet, um einen granularen Datenaustausch mit Webservern anstelle von Aktualisierungen auf Seitenebene zu ermöglichen. Dies ermöglicht eine reaktionsschnellere Benutzererfahrung. Bei AJAX muss jedoch der gesamte Datenaustausch von der Clientseite ausgehen, was es für den Webserver schwierig macht, Daten proaktiv an die Clients zu übertragen.

Um diese Einschränkung zu beheben, wurde Comet als Erweiterung von AJAX entwickelt. Comet funktioniert, indem es „absichtlich Anfragen mit verzögerten Antworten erstellt“ und die HTTP-Verbindung zum Webserver offen hält, sodass der Server Antworten senden kann, wann immer er Informationen pushen möchte. Comet hat jedoch das Problem eines hohen Ressourcenverbrauchs.

WebSocket wurde als Verbesserung gegenüber Comet entwickelt und ist in HTML5 verfügbar. Es hält eine Verbindung zwischen Server und Client offen und ermöglicht so eine kontinuierliche bidirektionale Kommunikation über diese Verbindung. Heute unterstützen die wichtigsten Browser WebSocket.

Eine WebSocket-Verbindung wird über HTTP hergestellt, indem das HTTP-Headerfeld „Upgrade“ verwendet wird, um die Verbindung in einen WebSocket zu aktualisieren. Beachten Sie, dass die Verbindung oder Kommunikation fehlschlagen kann, wenn eine Website einen HTTP-Proxy verwendet, der WebSocket nicht unterstützt. Daher sind entsprechende Konfigurationen erforderlich.