SPDY – das schnellere HTTP

Beim Webdesign muss heut zu Tage sehr stark auf Performance geachtet werden. Moderne Web-Apps bestehen aus einer Unzahl von Grafiken, Skripten und anderen Elementen. Gerade für mobile Endgeräte ist diese Flut von Dateien, die einzeln von verschiedenen Domains geladen werden, ein echter Performance Killer. Genau hier kann SPDY seine Vorteile ausspielen.

Seit 2009 arbeitet Google an SPDY (gesprochen „Speedy“), einem neuen Protokoll zur Übertragung von Daten im Internet. Die Spezifikation von SPDY wird mittlerweile in vielen Belangen als Grundlage für HTTP 2.0 verwendet. Einzig bei der Art der Komprimierung gibt es noch Diskussionen und die obligatorische Verschlüsselung bleibt wohl optional.

Die Eigenschaften von SPDY im Überblick

Komprimierung

Beim Übertragen von Daten über HTTP gibt es optional die Möglichkeit diese zu komprimieren. Üblicherweise kommt dabei gzip zum Einsatz. In SPDY ist die Komprimierung der Daten Standard. Dies betrifft natürlich nicht nur Dateien sondern auch Headerdaten wie beispielsweise Cookies.

Multiplexing

Das Multiplexing von Requests ist wahrscheinlich der größte Fortschritt, den SPDY mit sich bringt. Wie oben erwähnt ist über HTTP eine Vielzahl von Anfragen nötig um eine Webseite vollständig zu laden. SPDY setzt hier auf ein Verfahren, mit dem es möglich ist alle Requests an einen Server innerhalb einer einzigen TCP Verbindung abzuarbeiten. Dadurch wird einmal ein Header übertragen und nicht für jeden Request ein neuer, so dass weniger Daten übermittelt werden. Auch die Latenz für den Verbindungsaufbau bei jedem Request entfällt, was ein zusätzliches Zeitersparnis bringt. Außerdem ist eine Priorisierung der Anfragen möglich, damit der Browser zuerst mit den Daten gefüttert wird, die wichtig für den eigentlichen Seitenaufbau sind.

Das Zusammenspiel dieser drei Eigenschaften kann im günstigsten Fall zu einem etwa doppelt so schnellen Seitenaufbau führen.

Verschlüsselung

SPDY setzt auf eine Verschlüsselung aller Daten. Zum Einsatz kommt hier eine SSL/TLS Verschlüsselung. Diese ist als Standard festgelegt, was Überwachungsstaaten wahrscheinlich ein Dorn im Auge sein wird. Durch den einzelnen Aufbau einer Verbindung über SPDY kann die Verschlüsselung sehr effizient genutzt werden so dass trotz Verschlüsselung mit SPDY ein schneller Seitenaufbau möglich ist. Via HTTPS benötigt das Laden einer Seite hingegen wegen des zusätzlichen Overhead meist doppelt so lange als über HTTP.

Server Push

Server-Push erlaubt es dem Server, Dateien die zusammen gehören (z.B. ein HTML-Dokument und die enthaltenen Skripte, Stylesheets und Multimedia-Elemente) zusammen auszuliefern, auch wenn der Client nur eine der Dateien (typischer Weise das HTML-Dokument) angefragt hat.

Server Hint

Server Hint ist eine Ergänzung zu Server Push. Statt die Daten sofort an den Client zu übermitteln sendet der Server nur die Information, dass neue Daten zur Verfügung stehen.Der Client kann nun selbst entscheiden ob er diese Daten benötig und diese dann gegebenenfalls Anfragen. Eine sehr effiziente Lösung, die clientseitiges caching berücksichtigt.

Unterstützung von SPDY

Googles Browser Chrome unterstützt SPDY natürlich schon am längsten. Doch auch andere Browser wie Firefox ab Version 13 und Internet Explorer ab Version 11 bieten mittlerweile Unterstützung an. Eine vollständige Auflistung gibt es unter http://caniuse.com/spdy

Auch auf Serverseite gibt es mittlerweile eine recht gute Unterstützung. Für Apache Webserver ab Version 2.2 gibt es mit dem Modul mod_spdy eine Implementierung und auch Nginx bietet inzwischen Seiten via SPDY an.

Teilen Sie diesen Beitrag

Das könnte dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert