Familie: | ähnlich HTTP in der Internetprotokollfamilie, aber experimentell | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Einsatzgebiet: | Datenpaketversendung sowohl lokal als auch weltweit über verschiedene Netzwerke | |||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
Standards: | n. n. |
SPDY [englisch speedy ‚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.
] (vonJede 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.[1] Hier bietet SPDY die Möglichkeit, die einzelnen Anfragen zu priorisieren, um einen Deadlock zu vermeiden oder wichtige Dokumente schneller zu bekommen.[2]
Außerdem kann bei SPDY der Server selbst Übertragungen initiieren und Inhalte direkt und ohne Anfrage an den Client senden (Server push[3]). 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.[3]
Google Chrome war der erste Webbrowser mit SPDY-Unterstützung. Mozilla Firefox unterstützt SPDY ab Version 11;[4] ab Version 13 ist es standardmäßig aktiviert.[5] Opera unterstützt SPDY seit Version 12.10.[6] SPDY wird von etwa drei Prozent aller Websites unterstützt.[7] 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.[8]
TLS False Start wurde in Google Chrome ab Version 20 (2012) deaktiviert; eine Ausnahme bilden Webseiten, die die Next Protocol Negotiation (NPN) unterstützen.[9]
Im Februar 2015 kündigte Google an, dass nach der Ratifizierung des HTTP/2-Standards die Unterstützung für SPDY entfernt werde.[10] Am 15. Mai 2015 wurde HTTP/2 offiziell als RFC 7540[11] veröffentlicht. Mozilla entfernte die Unterstützung in Firefox 50.[12] Apple entfernte die Unterstützung in macOS 10.14.4 und iOS 12.2.[13]
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,[14] ältere Versionen (vor 1.5.10) unterstützen auch das veraltete SPDY/2.
Für die Nutzung innerhalb von HTTPS benötigt SPDY die TLS-Erweiterung Next Protocol Negotiation, kurz NPN.[15] 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.[16] Es existieren auch Anpassungen für NSS und TLSLite, die die Unterstützung von NPN ermöglichen.[17]
SPDY ist ein versioniertes Protokoll. Es besitzt 15 Steuerbits (innerhalb des Control Frames), die die Version des Sitzungsprotokolls definieren.
Die Semantik des Server-Push widerspricht laut Microsoft der von HTTP.[26]
Durch die verpflichtende Verschlüsselung werden viele (transparente) Proxys nicht mehr funktionieren. Auch ein Filtern der übertragenen Inhalte wird dadurch stark erschwert.