HTTP/2.0 soll das Web schneller machen

Seit dem 28.09.2012 steht ein erster Entwurf für die neue HTTP-Protokollversion 2.0 bei der IETF bereit. Mit der noch in der Entwicklung befindlichen HTTP/2.0-Version soll das Laden von Webseiten in Zukunft schneller erfolgen als zuvor, indem man auf sogenanntes Multiplexing setzt. Google schlägt auch vor, die Verschlüsselung (HTTPS) zum Standard zu machen; Microsoft dagegen sieht Verschlüsselung nur als eine zusätzliche Option an.

Das Hypertext Transfer Protocol wurde damals vor über 20 Jahren am Kernforschungszentrum CERN von Tim Berners-Lee, Roy Fielding und weiteren Personen entwickelt. Die HTTP-Version 1.0 (HTTP/1.0) wurde dann im Mai 1996 zum Standard. Drei Jahre später erschien HTTP/1.1, das bis heute noch verwendet wird, damit der Browser mit dem HTTP-Server und der HTTP-Server mit dem Browser einheitlich kommunizieren kann.

Einer der Unterschiede zwischen den beiden HTTP-Protokollversionen 1.0 und 1.1 ist, dass bei HTTP/1.1 mehrere Elemente über eine einzige TCP-Verbindung übertragen werden können. Somit muss nicht für jedes Element einer Webseite (also CSS- und Javascript-Dateien oder Grafiken, etc.) eine neue TCP-Verbindung auf- und wieder abgebaut werden.

Einschub: Lustiges Videos über das HTTP-Protokoll (sehr einfach gehalten)

Eingebettetes Video
https://www.youtube.com/watch?v=nvUseMmU4Sk

Hier war ein YT-Video über eine Invidious-Instanz eingebunden. Wegen technischen Maßnahmen von Google, mit denen das Invidious-Projekt gerade zu kämpfen hat, können hier momentan keine YT-Videos via Invidious eingebunden werden.

Multiplexing: Mehrere Datenströme über eine HTTP/2.0-Verbindung

Die neue HTTP-Version 2.0 setzt auf sogenanntes Multiplexing damit eine Webseite deutlich schneller geladen werden kann. Technisch bedeutet das, dass mehrere Datenströme gleichzeitig über eine einzelne HTTP-Verbindung übertragen werden können (nicht zu verwechseln mit der TCP-Verbindung). Allerdings hat das auch ein paar Nachteile:

Wenn die gesamte Bandbreite der Internetverbindung ausgenutzt wird, um z.B. 100 unsichtbare Grafiken von der Webseite herunterzuladen, dann kann es passieren, dass die für die Anzeige wichtige CSS-Datei zu spät dran kommt und der Benutzer länger warten muss. Allerdings könnte man als Webentwickler einzelne Elemente priorisieren, so dass diese vorrangig behandelt werden.

Ausgangspunkt der Entwicklung ist Googles SPDY

Der Ausgangspunkt ist die SPDY-Spezifikation von Google. SPDY wird parallel entwickelt und ist sozusagen eine Spielwiese für die Entwickler, um neue Features zu implementieren. Der erste Entwurf (oben verlinkt) ist somit nur eine Kopie der SPDY-Spezifikation. Die Arbeitsgruppe, die an HTTP/2.0 arbeitet, hat sich allerdings schon auf wesentliche Änderungen geeinigt, so dass es am Ende keine 1:1 Kopie mehr bleibt.

An der Entwicklung beteiligen sich mittlerweile auch Apple und Microsoft. SPDY hingegen lässt nur verschlüsselte Verbindungen zu. Webserver, die das SPDY-Protokoll bereits implementieren, sind (unter anderem) die Webserver von Google, Twitter und Amazon. Bei HTTP/2.0 soll die Verschlüsselung aber nur optional sein.

Weiterführende Links

  1. RFC 1945 • HTTP-Spezifikation Version 1.0
  2. RFC 2616 • HTTP-Spezifikation Version 1.1

Hinweis:
Dies ist ein älterer Artikel von meinem alten Blog. Die Kommentare zu diesem Artikel werden (falls vorhanden) später noch hinzugefügt.

Der Autor

Unter dem Namen »TheBlackPhantom« alias »BlackY« veröffentlichte ich auf meinem alten Blog, BlackPhantom.DE, in der Zeit von 2011 bis 2015 leidenschaftlich Beiträge über Computer, Internet, Sicherheit und Malware. Während der BlackPhantom-Zeit war ich noch grün hinter den Ohren und lernte viel dazu. Mehr Infos vielleicht in Zukunft...