Notice: Unexpected clearActionName after getActionName already called in /var/www/html/includes/context/RequestContext.php on line 338
SPDY – Wikipedia Zum Inhalt springen

SPDY

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Spdy)
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 SSL/TLS
TCP
Internet IP (IPv4, IPv6)
Netzzugang Ethernet Token
Bus
Token
Ring
FDDI
Standards: n. n.

SPDY [<templatestyles src="IPA/styles.css" />ˈspiːdi] (von {{Modul:Vorlage:lang}} Modul:Vorlage:lang:103: attempt to index field 'wikibase' (a nil value) ‚flott‘, ‚flink‘ oder ‚schnell‘) ist ein veraltetes experimentelles TCP-basiertes Netzwerkprotokoll, das vom Unternehmen Google entwickelt wurde. SPDY ergänzt hierzu das HTTP-Protokoll. Der im Mai 2015 veröffentlichte HTTP/2-Standard fußt in weiten Teilen auf SPDY. Nachdem HTTP/2 als Standard ratifiziert wurde, haben wichtige Hersteller, darunter Google, Mozilla und Apple, SPDY zu Gunsten von HTTP/2 eingestellt. Im Jahr 2021 unterstützt kein moderner Browser mehr SPDY. Der neuere HTTP/3-Standard basiert wiederum auf QUIC, welches ebenfalls ursprünglich von Google entwickelt wurde.

Funktionsweise

Jede SPDY-Übertragung wird mittels TLS verschlüsselt. 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.<ref>chromium.org</ref> Hier bietet SPDY die Möglichkeit, die einzelnen Anfragen zu priorisieren, um einen Deadlock zu vermeiden oder wichtige Dokumente schneller zu bekommen.<ref>chromium.org 3 Bit Prioritäten</ref>

Außerdem kann bei SPDY der Server selbst Übertragungen initiieren und Inhalte direkt und ohne Anfrage an den Client senden (Server push<ref name="google">chromium.org</ref>). 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.<ref name="google" />

Implementierung

Clientseitig

Google Chrome war der erste Webbrowser mit SPDY-Unterstützung. Mozilla Firefox unterstützt SPDY ab Version 11;<ref>Firefox 11 implementiert SPDY-Protokoll – Artikel vom 14. März 2012.</ref> ab Version 13 ist es standardmäßig aktiviert.<ref>network.http.spdy.enabled true. Bugzilla.mozilla.org; abgerufen am 22. April 2012.</ref> Opera unterstützt SPDY seit Version 12.10.<ref>Opera 12.10 is out. Opera Developer News.</ref> SPDY wird von etwa drei Prozent aller Websites unterstützt.<ref>Usage of SPDY for websites – W3Techs.</ref> Ab Version 11 und Windows 8.1 unterstützt auch Microsoft Internet Explorer SPDY.

Kommt SPDY auf Firefox-Webbrowsern zum Einsatz, steht im Antwort-Header der Eintrag „X-Firefox-Spdy“ mit einem Wert größer oder gleich 1.<ref>bugzilla.mozilla.org</ref>

TLS False Start wurde in Google Chrome ab Version 20 (2012) deaktiviert; eine Ausnahme bilden Webseiten, die die Next Protocol Negotiation (NPN) unterstützen.<ref>Adam Langley: False Start’s Failure. In: ImperialViolet.org. 11. April 2012, abgerufen am 25. September 2013 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>

Im Februar 2015 kündigte Google an, dass nach der Ratifizierung des HTTP/2-Standards die Unterstützung für SPDY entfernt werde.<ref>Chris Bentzel, Bence Béky: Hello HTTP/2, Goodbye SPDY. In: blog.chromium.org. 9. Februar 2015, abgerufen am 10. Juli 2023 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Am 15. Mai 2015 wurde HTTP/2 offiziell als RFC 7540<ref>Vorlage:RFC-Internet</ref> veröffentlicht. Mozilla entfernte die Unterstützung in Firefox 50.<ref>1287132 – Disable SPDY 3.1. In: bugzilla.mozilla.org. Abgerufen am 10. Juli 2023.</ref> Apple entfernte die Unterstützung in macOS 10.14.4 und iOS 12.2.<ref>Scott Marshall: Removing Legacy SPDY Protocol Support. WebKit, 25. Januar 2019, abgerufen am 7. März 2019 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>

Serverseitig

Für den Apache HTTP Server konnte SPDY-Unterstützung über das Modul mod spdy nachgerüstet werden. Dieses wurde von Google entwickelt und wurde der Apache Foundation im Jahr 2014 übergeben. nginx unterstützt SPDY 3.1 ab der Version 1.6,<ref>Owen Garrett: NGINX 1.6 and 1.7 released. NGINX, 24. April 2014.</ref> ältere Versionen (vor 1.5.10) unterstützen auch das veraltete SPDY/2.

Protokollunterstützung

Für die Nutzung innerhalb von HTTPS benötigt SPDY die TLS-Erweiterung Next Protocol Negotiation, kurz NPN.<ref>NPN protocol and explanation about its need to tunnel SPDY over HTTPS. (PDF) ietf.org</ref> Aus diesem Grund ist die Unterstützung von SPDY in Browsern und Webservern von der verwendeten SSL-Library und deren Unterstützung von NPN abhängig.

NPN wird von OpenSSL ab Version 1.0.1 unterstützt.<ref>Openssl 1.0.1 changelog.</ref> Es existieren auch Anpassungen für NSS und TLSLite, die die Unterstützung von NPN ermöglichen.<ref><templatestyles src="Webarchiv/styles.css" />TLS Next Protocol Negotiation. Section: Implementations. (Memento vom 30. Juli 2012 im Internet Archive) technotes.googlecode.com</ref>

Protokollversionen

SPDY ist ein versioniertes Protokoll. Es besitzt 15 Steuerbits (innerhalb des Control Frames), die die Version des Sitzungsprotokolls definieren.

  • Version 1: diese Version wird nicht mehr verwendet.<ref name="Draft2">SPDY Protocol – Draft 2. dev.chromium.org “Currently, the only valid string is ‘spdy/2’ (spdy/1 isn’t implemented anywhere anymore)”.</ref>
  • Version 2: Einstellung geplant. Nginx unterstützt SPDY/2 in Versionen vor 1.5.10.<ref>Module ngx_http_spdy_module. In: Nginx.org. Abgerufen am 3. Juni 2014 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Ab Firefox 28 und in neueren Versionen von Google Chrome wurde die Unterstützung bereits eingestellt.<ref>Issue 303957 – chromium – Make Chrome support only SPDY/3 and above – An open-source project to help move the web forward. In: Code.google.com. 3. Oktober 2013, abgerufen am 19. Februar 2014.</ref> Der Webserver OpenLiteSpeed unterstützt SPDY/2 (neben SPDY/3) ab der Version 1.1.<ref name="litespeedtech1">OpenLiteSpeed 1.1 (With SPDY!). blog.litespeedtech.com; abgerufen am 12. August 2013.</ref>
  • Version 3: SPDY/3 erweitert das Protokoll um Flusskontrolle und ein aktualisierte Kompression (dictionary). Außerdem wurde die Größe spezifischer Übertragungsrahmen optimiert und Fehler behoben. Firefox unterstützt SPDY/3 ab Version 15, der Internet Explorer ab Version 11.
  • Version 3.1: SPDY v3.1 führt die Flusskontrolle für die Sitzungsschicht ein und entfernt den CREDENTIALS-Übertragungsrahmen (und damit verbundene Fehler).<ref>SPDY Protocol – Draft 3.1. Abgerufen am 17. November 2013 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> Firefox unterstützt die Version 3.1 des Protokolls ab der Version 27 und der OpenLiteSpeed-Server ab der Version 1.2.7.<ref name="litespeedtech2">OpenLiteSpeed 1st Web Server to Support SPDY/3.1! blog.litespeedtech.com; abgerufen am 10. Januar 2014.</ref> Mit Version 1.5.10 unterstützt auch Nginx die Protokollversion SPDY/3.1.<ref>NGINX Announces Support for SPDY/3.1. nginx.com; abgerufen am 4. Februar 2014.</ref>
  • Version 4.0: SPDY v4 alpha3 führt das Protokoll näher mit dem HTTP/2-Entwurf zusammen; es besitzt eine neue Flusskontrolle für Datenströme (Streaming) und die Fehlercodes wurden denen von HTTP/2 angeglichen.<ref>Upcoming SPDY/4 changes to bring it more in sync with the HTTP/2 draft. In: groups.google.com. Abgerufen am 27. Februar 2014 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref>

Kritik

Die Semantik des Server-Push widerspricht laut Microsoft der von HTTP.<ref>Microsoft bringt eigenen Vorschlag zu HTTP 2.0 heise.de</ref>

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

Weblinks

Einzelnachweise

<references />