SPDY

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
SPDY
Familie: ähnlich HTTP in der
Internetprotokollfamilie,
aber experimentell
Einsatzgebiet: Datenpaketversendung
sowohl lokal als auch
weltweit über verschiedene
Netzwerke
SPDY im TCP/IP‑Protokollstapel:
Anwendung SPDY
Transport TCP
Internet IP (IPv4, IPv6)
Netzzugang Ethernet Token
Bus
Token
Ring
FDDI
Standards: n. n.

SPDY [ˈspiːdi] (von englisch speedy ‚flott‘, ‚flink‘ oder ‚schnell‘) ist ein experimentelles, TCP-basiertes Netzwerkprotokoll, das vom Unternehmen Google entwickelt wurde. SPDY soll HTTP nicht komplett ersetzen, aber einzelne Bestandteile erweitern oder ersetzen. Der in der Entwicklung befindliche Standard HTTP/2.0 basierte ursprünglich auf SPDY.

Funktionsweise[Bearbeiten]

Jede SPDY-Übertragung wird mittels TLS verschlüsselt. Ursprünglich war auch die Komprimierung der HTTP-Header mit gzip vorgesehen – was aber aufgrund eines bekannt gewordenen Angriffs von CRIME nicht mehr erfolgen sollte[1]. Einen rund doppelt so schnellen Seitenaufbau erreicht SPDY laut Google vor allem durch das Multiplexen der Übertragungen. Dadurch können über eine einzelne TCP-Verbindung beliebig viele Dokumente parallel übertragen werden.[2] Hier bietet SPDY die Möglichkeit, die einzelnen Anfragen zu priorisieren, um einen Deadlock zu vermeiden oder wichtige Dokumente schneller zu bekommen.[3]

Außerdem kann bei SPDY der Server selbst Übertragungen initiieren und Inhalte direkt und ohne Anfrage an den Client senden (Server push[4]). So können aktualisierte Inhalte (z. B. neue E-Mails) ohne Neuladen durch den Anwender oder ständige Abfrage durch Skripte direkt an die bereits geladene Seite gesendet werden, die dann die entsprechenden Bereiche aktualisiert. Damit verbunden können u. a. die Ladezeiten von weiteren Seitenaufrufen verringert werden und eine bessere Auslastung des Netzwerks erreicht werden, da sinnlose Abfragen auf Verdacht entfallen.[5]

Implementierungen[Bearbeiten]

Clientseitig[Bearbeiten]

Google Chrome war der erste Webbrowser mit SPDY-Unterstützung. Mozilla Firefox unterstützt SPDY ab Version 11;[6] ab Version 13 ist es standardmäßig aktiviert.[7] Opera unterstützt SPDY seit Version 12.10.[8] SPDY wird von etwa 0,5% aller Websites unterstützt.[9] Ab Version 11 und Windows 8.1 unterstützt auch Microsoft Internet Explorer SPDY.

Wenn SPDY zur Übertragung zum Einsatz kam, steht im Antwortheader bei Firefox der Eintrag „X-Firefox-Spdy“ mit einem Wert größer oder gleich 1 verzeichnet.[10]

Serverseitig[Bearbeiten]

Für den sehr verbreiteten Webserver Apache gibt es ein Modul namens mod_spdy, welches die SPDY-Unterstützung serverseitig bereitstellt.[11] Auch für nginx, eingesetzt bei einigen großen Services, existiert ein experimentelles Modul.[12]

Kritik[Bearbeiten]

Die Semantik des Server-Push widerspricht laut Microsoft der von HTTP[13].

Durch die verpflichtende Verschlüsselung werden viele (transparente) Proxys nicht mehr funktionieren. Auch ein Filtern der übertragenen Inhalte wird dadurch stark erschwert.

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. arstechnica.com http://arstechnica.com/security/2012/09/crime-hijacks-https-sessions/
  2. http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft2#TOC-Data-flow
  3. http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft2#TOC-SYN_STREAM 3 Bit Prioritäten
  4. http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft2#TOC-Server-Push-Transactions
  5. http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft2#TOC-Server-Push-Transactions
  6. Firefox 11 implementiert SPDY-Protokoll – Artikel vom 14. März 2012
  7. network.http.spdy.enabled true - Link zu Bugzilla aufgerufen am 22. April 2012
  8. Opera 12.10 is out - Opera Developer News
  9. Usage of SPDY for websites - W3Techs
  10. https://bugzilla.mozilla.org/show_bug.cgi?id=736882#c1
  11. http://code.google.com/p/mod-spdy/
  12. http://nginx.org/en/docs/http/ngx_http_spdy_module.html
  13. Microsofts Vorschlag zu HTTP 2.0