Das Internet wird dank des Eintreffens von HTTP / 2 effizienter.  Aber was ist das und wie verbessert es sich bei HTTP?

Was ist HTTP / 2 und wie wirkt es sich auf die Zukunft des Internets aus?

Werbung Sie haben vielleicht noch nichts von HTTP / 2 gehört, aber es ist das neueste Update für HTTP. Der neue Protokollstandard führt einige neue Konzepte ein und macht die Kommunikation zwischen Servern und Anwendungen schneller und effizienter. Was ist HTTP / 2? HyperText Transfer Protocol Version 2 oder HTTP / 2 ist das erste größere Update für HTTP seit 15 Jahren. Der

Werbung

Sie haben vielleicht noch nichts von HTTP / 2 gehört, aber es ist das neueste Update für HTTP. Der neue Protokollstandard führt einige neue Konzepte ein und macht die Kommunikation zwischen Servern und Anwendungen schneller und effizienter.

Was ist HTTP / 2?

HyperText Transfer Protocol Version 2 oder HTTP / 2 ist das erste größere Update für HTTP seit 15 Jahren.

Der vorherige Protokollstandard HTTP / 1.1 wird seit 1997 verwendet und verwendet eine Mischung aus umständlichen Problemumgehungen, um die Einschränkungen von HTTP zu verbessern.

Es basiert auf SPDY ("speedy"), einem Open-Source-Experiment, das von Google gestartet wurde, um einige der Probleme und Einschränkungen von HTTP / 1.1 zu beheben

Die Internet Engineering Task Force (IETF) spezifiziert die folgenden Änderungen in Hypertext Transfer Protocol Version 2, Entwurf 17:

„HTTP / 2 ermöglicht eine effizientere Nutzung von Netzwerkressourcen und eine geringere Wahrnehmung von Latenz, indem die Header-Feldkomprimierung eingeführt wird und mehrere gleichzeitige Austausche auf derselben Verbindung möglich sind. […]

"Es ermöglicht auch die Priorisierung von Anforderungen, wodurch wichtigere Anforderungen schneller ausgeführt werden und die Leistung weiter verbessert wird."

"HTTP / 2 ermöglicht auch eine effizientere Verarbeitung von Nachrichten durch die Verwendung von binären Nachrichtenrahmen."

„Diese Spezifikation ist eine Alternative zur HTTP / 1.1-Nachrichtensyntax, ersetzt diese jedoch nicht. Die vorhandene Semantik von HTTP bleibt unverändert. “

HTTP / 2 basiert auf SPDY

HTTP / 2 basiert auf SPDY

Bis 2012 unterstützten die meisten modernen Browser und viele beliebte Websites (Google, Twitter, Facebook usw.) bereits SPDY. Mit zunehmender Popularität von SPDY begann die HTTP-Arbeitsgruppe (HTTP-WG) mit der Aktualisierung des HTTP-Standards.

Ab diesem Zeitpunkt war SPDY die Grundlage und der experimentelle Zweig für neue Funktionen in HTTP / 2. Zu dieser Zeit haben wir untersucht, wie SPDY das Surfen verbessern kann. Was ist SPDY und wie kann es Ihre Surferfahrung maximieren? Was ist SPDY und wie kann es Ihre Browser-Erfahrung maximieren? Weiterlesen . Seitdem wurde der Standard Version 2 entworfen, genehmigt und veröffentlicht.

Viele der Funktionen von SPDY wurden in HTTP / 2 integriert, und Google hat die Unterstützung dieses Protokolls Anfang 2016 eingestellt.

Die meisten Browser haben die Unterstützung von SPDY eingestellt, und da es keine Alternativen gibt, wird HTTP / 2 zum De-facto-Standard.

Während der HTTP / 2-Protokollstandard nicht streng abwärtskompatibel mit HTTP / 1 ist, kann die Kompatibilität über die Übersetzung erreicht werden. Ein Nur-HTTP / 1.1-Client versteht keinen Nur-HTTP / 2-Server und umgekehrt, weshalb die neue Protokollversion HTTP / 2 und nicht HTTP / 1.2 ist.

Ein wichtiger Teil der Arbeit von HTTP-WG besteht jedoch darin, sicherzustellen, dass HTTP / 1 und HTTP / 2 ohne Informationsverlust hin und her übersetzt werden können.

Alle neu eingeführten Mechanismen oder Funktionen sind auch versionsunabhängig und abwärtskompatibel mit dem vorhandenen Web.

HTTP / 2 kann ein Benutzer nicht wirklich implementieren, aber es gibt Dinge, die wir tun können, um unsere Browsing-Geschwindigkeit zu beeinflussen. Glauben Sie, dass einer dieser verbreiteten Mythen Ihre Internetgeschwindigkeit beschleunigt? 5 Mythen über die Erhöhung der Internetgeschwindigkeit und warum sie nicht funktionieren 5 Mythen über die Erhöhung der Internetgeschwindigkeit und warum sie nicht funktionieren Internetgeschwindigkeit ist eine kritische Messgröße im 21. Jahrhundert. Im Internet gibt es jedoch viele Fehlinformationen darüber, wie Sie Ihre Verbindung schneller herstellen können. Hier sind fünf Mythen, die Sie nicht glauben sollten. Weiterlesen

Die Vorteile und Funktionen von HTTP / 2

HTTP / 2 bringt einige großartige Aktualisierungen des HTTP-Standards mit. Einige der wichtigsten sind binäres Framing, Multiplexing, Stream-Priorisierung, Flusskontrolle und Server-Push.

Binäre Rahmung

HTTP-Nachricht in binären HTTP / 2-Framing-Streams
HTTP-Nachrichten von mfuji09 sind unter CC-BY-SA 2.5 lizenziert.

Nach dem Update auf HTTP2 / wird die HTTP-Protokollkommunikation in einen Austausch von binär codierten Frames aufgeteilt. Diese Frames werden Nachrichten zugeordnet, die zu einem bestimmten Stream gehören. Die Streams werden dann in einer einzigen TCP-Verbindung gemultiplext (gewissermaßen zusammengewebt).

Die neue binäre Rahmenebene führt eine neue Terminologie ein. Streams, Nachrichten und Frames.

  • Streams sind bidirektionale Byteströme, die eine oder mehrere Nachrichten enthalten.
  • Jeder dieser Streams verfügt über eine eindeutige Kennung und kann mithilfe optionaler Prioritätsinformationen bidirektionale Nachrichten übertragen.
  • Frames sind die kleinste Kommunikationseinheit in HTTP / 2, die bestimmte Datensätze (HTTP-Header, Nachrichtennutzdaten usw.) enthält. Der Header identifiziert mindestens den Stream, zu dem der Frame gehört.
  • Nachrichten sind vollständige Frames, die einer logischen Anforderung oder Antwortnachricht zugeordnet sind.
  • Jede Nachricht ist eine logische HTTP-Nachricht, wie eine Anfrage oder Antworten, die aus einem oder mehreren Frames besteht.

Dadurch können wir eine einzelne TCP-Verbindung verwenden, für die in der Vergangenheit mehrere erforderlich waren.

Multiplexing

Multiplexing-Beispiel

HTTP / 1.1 stellt sicher, dass pro Verbindung immer nur eine Antwort zugestellt werden kann. Der Browser öffnet zusätzliche TCP-Verbindungen, wenn der Client mehrere parallele Anforderungen stellen möchte.

HTTP / 2 hebt diese Einschränkung von HTTP / 1.1 auf und ermöglicht das vollständige Multiplexen von Anforderungen und Antworten. Dies bedeutet, dass der Client und der Server eine HTTP-Nachricht in unabhängige Frames aufteilen können, die dann verschachtelt und am anderen Ende wieder zusammengesetzt werden.

Insgesamt ist dies die wichtigste Verbesserung von HTTP / 2, da zum Teil keine Mehrfachverbindungen erforderlich sind. Dies wird wiederum zahlreiche Leistungsvorteile für alle Webtechnologien mit sich bringen.

Die verringerte Anzahl von Verbindungen bedeutet weniger TLS-Handshakes (Transport Layer Security), eine bessere Wiederverwendung von Sitzungen und eine Reduzierung der Anforderungen an Client- und Serverressourcen. Dies macht die Bereitstellung von Anwendungen schneller, einfacher und kostengünstiger.

Websites mit vielen externen Ressourcen (Bildern oder Skripten) erzielen die größten Leistungssteigerungen durch HTTP / 2-Multiplexing.

Stream-Priorisierung und Abhängigkeit

Weitere Verbesserungen der gemultiplexten Ströme werden mit Gewichts- und Stromabhängigkeiten vorgenommen. Mit HTTP / 2 können wir jedem Stream eine Gewichtung zuweisen (einen Wert zwischen 1 und 256) und ihn explizit von einem anderen Stream abhängig machen.

Diese Abhängigkeits- und Gewichtungskombination führt zur Erstellung eines Priorisierungsbaums, der dem Server mitteilt, wie der Client Antworten erhalten möchte.

Der Server verwendet die Informationen in der Priorisierungsstruktur, um die Zuweisung von CPU, Speicher und anderen Ressourcen sowie die Zuweisung von Bandbreite zu steuern und sicherzustellen, dass der Client die optimale Zustellung von Antworten mit hoher Priorität erhält.

Ablaufsteuerung

Probleme mit der Flusssteuerung in HTTP / 2 ähneln HTTP / 1.1. Da HTTP / 2-Streams jedoch innerhalb einer einzelnen TCP-Verbindung gemultiplext werden, ist die Funktionsweise der Flusssteuerung in HTTP / 1.1 nicht mehr effizient.

Kurz gesagt, die Flusssteuerung ist erforderlich, um zu verhindern, dass sich Streams gegenseitig stören und eine Blockade verursachen. Dies ermöglicht Multiplexing. HTTP / 2 ermöglicht die Verwendung einer Vielzahl von Flusssteuerungsalgorithmen, ohne dass Protokolländerungen erforderlich sind.

In HTTP / 2 ist kein Algorithmus zur Flusssteuerung angegeben. Stattdessen wurde eine Reihe von Bausteinen bereitgestellt, mit denen Clients und Server ihre eigene Ablaufsteuerung anwenden können.

Einzelheiten zu diesen Bausteinen finden Sie im Abschnitt „Ablaufsteuerung“ des HTTP / 2-Internet-Entwurfs.

Server Push

Normalerweise fordert Ihr Browser beim ersten Besuch einer Seite ein HTML-Dokument von einem Server an und empfängt es. Der Server muss dann warten, bis der Browser das HTML-Dokument analysiert und eine Anforderung für die eingebetteten Elemente (CSS, JavaScript, Bilder usw.) sendet.

In HTTP / 1.1 kann der Server diese Assets erst senden, wenn der Browser sie anfordert, und für jedes Asset ist eine separate Anforderung erforderlich (dh mehrere Handshakes und Verbindungen).

Server-Push reduziert die Latenz, indem der Server diese Ressourcen ohne Aufforderung senden kann, da er bereits weiß, dass der Client sie benötigt. Im obigen Beispiel überträgt der Server CSS, JavaScript (eine gängige Skriptsprache). Was ist JavaScript und wie funktioniert es? Was ist JavaScript und wie funktioniert es? Was ist Javascript? Es ist eine Programmiersprache, die zur Verbesserung von Webseiten verwendet wird. Es umfasst das dynamische Aktualisieren von Webseiten, Benutzeroberflächen und mehr. Sehen wir uns an, worum es bei Javascript geht. Lesen Sie mehr auf Webseiten) und Bilder im Browser, um die Seite schneller anzuzeigen.

Grundsätzlich ermöglicht Server-Push einem Server, mehrere Antworten auf eine einzelne Client-Anfrage zu senden.

Dies ist der Effekt, den wir derzeit erzielen, wenn wir CSS oder JS manuell in unsere HTML-Dokumente einfügen. Wir übertragen die eingebettete Ressource an den Client, ohne darauf zu warten, dass der Client sie anfordert.

Dies ist ein großer Schritt vom aktuellen HTTP-Standard eines strengen Eins-zu-Eins-Anforderungs-Antwort-Workflows entfernt.

Die Einschränkungen von HTTP / 2

Bild von Browsern, die HTTP / 2 unterstützen

SPDY hatte eine etwas strengere Sicherheitsrichtlinie und verlangte eine SSL-Verschlüsselung für alle Verbindungen. HTTPS / 2 erfordert keine Verschlüsselung, aber viele Dienste können HTTP / 2 ohne SSL nicht bedienen.

Alle gängigen Browser unterstützen HTTP / 2, aber keiner von ihnen unterstützt es ohne Verschlüsselung. Die CanIUs-Website bietet eine hervorragende Übersicht über die aktuelle Browserunterstützung für HTTP / 2 (siehe oben).

Die Abwärtskompatibilität und Übersetzungen zwischen HTTP / 1.1 und HTTP / 2 verlangsamen die Seitenladegeschwindigkeit.

Es gibt keinen wirklichen Grund, warum die Verschlüsselung derzeit keine Standard- oder obligatorische Einrichtung sein sollte. Wenn Ihre Site bereits über ein SSL-Zertifikat verfügt, können Sie die Sicherheit Ihrer HTTPS-Website verbessern, indem Sie HSTS aktivieren.

Ist HTTP / 2 das nächste große Ding?

Vergleich der Ladezeiten von HTTP / 1.1 und HTTP / 2

Mitte 2015 wurde HTTP / 2 als Standard vorgeschlagen, und die meisten Browser haben Ende des Jahres die Unterstützung für HTTP / 2 hinzugefügt. HTTP / 2 beeinflusst bereits die Funktionsweise des Internets und die Kommunikation zwischen Anwendungen und Servern.

Es gibt keine Anforderungen, um die Verwendung von HTTP / 2 zu erzwingen, aber bisher dient es nur den Vorteilen und keinen Nachteilen. Es ist auch eine ziemlich kleine Änderung aus der Sicht der Benutzer, die die Leute nicht wirklich bemerken.

Laut W3Tech unterstützen derzeit 31, 7% der 10 größten Websites HTTP / 2. Die schnellste Möglichkeit für die meisten von Ihnen, HTTP / 2 auf Ihrer Website zu aktivieren, ist die Verwendung von Cloudflares CDN.

Der nächste vorgeschlagene Standard (HTTP / 3) ist bereits in Arbeit und basiert auf QUIC, einem weiteren experimentellen Projekt von Google. Im Oktober dieses Jahres forderten die HTTP-WG der IETF und die QUIC-Arbeitsgruppe QUIC offiziell auf, der neue weltweite Standard zu werden und ihn in HTTP / 3 umzubenennen.

Wenn Sie neugierig sind, hat Akamai.com ein schnelles Tool, mit dem Sie überprüfen können, ob Ihr Browser HTTP / 2 unterstützt. Wenn dies nicht der Fall ist, sollten Sie in Betracht ziehen, Ihren Browser zu wechseln. 5 Google Chrome-Alternativen für einen besseren Browser auf dem Desktop oder auf dem Handy 5 Google Chrome-Alternativen für einen besseren Browser auf dem Desktop oder auf dem Handy Chrome ist der beliebteste Browser der Welt. Aber es gibt immer noch Probleme. Können diese alternativen Browser eine bessere Wahl sein? Weiterlesen .

Erfahren Sie mehr über: Computernetzwerke, HTTP / 2, SPDY.