Zum Hauptinhalt Zur Navigation

Web Sockets statt XMLHttpRequest

Google veröffentlicht Chrome mit Web Sockets und pywebsocket für die Serverseite. Eine bidirektionale Kommunikation zwischen Browser und Server sollen die sogenannten Web Sockets erlauben, die Google nun in einer Entwicklerversion von Chrome und Webkit integriert hat. Die Spezifikation der Web Sockets ist Teil des von der WHAT WG entwickelten Standardentwurfs Web Applications 1.0.
/ Jens Ihlenfeld
62 Kommentare News folgen (öffnet im neuen Fenster)

Die über den Chrome Developer Channel erhältliche Chrome-Version 4.0.249.0 wartet mit Unterstützung von Web Sockets auf, die auch per Standardeinstellung aktiviert ist. Das entsprechende Web-Sockets-API(öffnet im neuen Fenster) erlaubt Webapplikationen eine bidirektionale Kommunikation mit Prozessen, die auf dem Server laufen. Die Schnittstelle stellt somit eine moderne Alternative zum XMLHttpRequest ("XHR") dar.

Im Vergleich mit XHR sollen Web Sockets die Entwicklung deutlich vereinfachen, denn es handelt sich nicht mehr um eine asynchrone HTTP-Verbindung in Verbindung mit Tricks wie extrem lange dauernden Get-Requests. Vielmehr stellen Web Sockets einen echten, bidirektionalen Kommunikationskanal im Browser bereit. Ist eine Web-Socket-Verbindung erst einmal aufgebaut, können über den Aufruf der Methode send() Daten gesendet und über den Event-Handler "onmessage" vom Server empfangen werden.

Kommuniziert wird dabei über das Web-Socket-Protokoll(öffnet im neuen Fenster) , nicht direkt über TCP/IP, um das von Browsern genutzte Sicherheitsmodell "Same-Origin" einzuhalten. Im Vergleich zur Kommunikation über HTTP mittels XHR soll das neue Protokoll effizienter sein und weniger Bandbreite benötigen. Das aber setzt ebenfalls eine neue Serverimplementierung voraus, die Google mit pywebsocket(öffnet im neuen Fenster) anbietet. Sie kann als Erweiterungsmodul im Webserver Apache genutzt oder als eigenständiger Server betrieben werden.

Wer die neue Technik ausprobieren will, kann dies ab sofort mit der aktuellen Entwicklerversion von Google Chrome und pywebsocket auf Serverseite tun. Noch sind Web Sockets und auch das Web-Socket-Protokoll nur Entwürfe, die im Rahmen der WHAT WG beziehungsweise der IETF weiterentwickelt werden.


Relevante Themen