Web

Datenübertragung

HTML5 - was es kann (Teil 3)

13.03.2011
Von 


Simon Hülsbömer betreut als Senior Research Manager Studienprojekte in der Marktforschung von CIO, CSO und COMPUTERWOCHE. Zuvor entwickelte er Executive-Weiterbildungen und war rund zehn Jahre lang als (leitender) Redakteur tätig. Hier zeichnete er u.a. für die Themen IT-Sicherheit und Datenschutz verantwortlich.

WebSockets

Wenn AJAX-Befehle lange brauchen, um vollständig ausgeführt zu werden, gehen sie meist mit einem Time-out zu Ende. Diese Fehlermeldungen wären für Aufgaben wie das Einsammeln der aktuellen Nachrichten ja noch akzeptabel - für interaktive Websites, die ein schnelles Server-Pinging voraussetzen, ist das jedoch nicht zu empfehlen. Um nicht ständig in regelmäßigen Zeiträumen einen Ping an den Server senden zu müssen, um Informationen aktualisieren zu können, wurde das auf TCP basierende WebSocket-Protokoll erfunden, das eine bidirektionale Verbindung zwischen Webanwendung und Web(Socket)-Server herstellt. Wo TCP Daten nur dann aktualisiert, wenn ein erneuter Ping ausgeführt wird (Pull-Verfahren), hält WebSockets die Verbindung die ganze Zeit aufrecht und kann neue Daten in Echtzeit überspielen (Push-Verfahren). Mit HTML5 wird die WebSocket-API an den Quellcode angebunden. Chrome, Firefox, Opera und Safari unterstützen WebSockets bereits - die meisten Webserver hingegen noch nicht, weshalb die Möglichkeiten keinesfalls schon nutzbar wären. Ein Beispiel für ein bereits entsprechend eingerichtetes WebSocket-Gateway-Angebot ist Kaazing.

Aber auch eine WebSocket-Verbindung ist nicht ewig stabil, von ihren Sicherheitsproblemen ganz zu schweigen. So haben Google und Mozilla die WebSocket-Unterstützung in ihren Browsern derzeit abgeschaltet, nachdem es Forschern gelungen war, über WebSockets Malware in den Browser-Cache zu laden. Die von den Wissenschaftlern vorgeschlagene Verbesserung des Browser-Codes an dieser Stelle wird von den Herstellern gerne angenommen. Bereits jetzt lässt sich die WebSocket-Unterstützung im Firefox mit wenigen Handgriffen wieder einschalten - wenn auch zunächst nur zu Testzwecken. Es wird aber nicht lange dauern, bis sich das Protokoll mit Hilfe von HTML5 auf breiter Front durchsetzt.

Server-sent Events

Dass der Client Daten vom Server abholen kann und sich mittels WebSockets Informationen in beide Richtungen transportieren lassen, wissen wir nun. Fehlen noch die server-sent events, die es dem Server erlauben, einseitig und ohne Rückfrage beim Client Daten zu versenden und Funktionen auszuführen. Dazu bedarf es erst eines EventSource-Objekts, das die Domain anzeigt. Im zweiten Schritt der Implementierung wird eine Funktion registriert, mittels der die Events im "If"- und "When"-Modus verarbeitet werden. Dazu braucht es keinerlei offener Sockets oder ständiger Anfrage bei einem anderen Server. Gerade auf mobilen Geräten sind die server-sent events sinnvoll, um Energie zu sparen.

Ein einfacheres Web

Sowohl Web-Entwickler als auch ISPs dürften von den verbesserten Kommunikationskanälen profitieren. Der Bedarf an massivem Datenverkehr sinkt und die Geschwindigkeit der Web-Angebote steigt. Lediglich die Gretchenfrage nach der Sicherheit bleibt. Diese liegt in der Verantwortung der Serverbetreiber, da die vorgestellten Features von der Anwenderseite aus nicht beeinflusst werden können. Unterstützt ein Web-Server einige oder alle, hat der Nutzer dies mitzutragen - unterstützt er sie nicht, ebenfalls. Vielleicht ändert sich das, sobald ihr Missbrauchspotenzial aufgezeigt wird - die Hacker stehen bereits in den Startlöchern.

Der Artikel stammt von Peter Wayner von unserer US-Schwesterpublikation InfoWorld. Die HTML5-Reihe wird fortgesetzt. (sh)