Was ist HTTP / 2 und was macht es?

In den letzten 20 Jahren hat sich das World Wide Web dramatisch weiterentwickelt. Alle verbesserten Webtechnologien erfordern bessere und schnellere Lösungen und Protokolle für die Kommunikation und Dateiübertragung als die aktuellen (HTTP), die an ihre technologischen Grenzen stoßen.

Was ist HTTP / 2?

HTTP / 2 ist die neueste Version von Hypertext Transport Protocol (HTTP) – das zugrunde liegende Protokoll, das vom World Wide Web verwendet wird. Es wurde ursprünglich im Februar 2015 genehmigt. Das ist fast 20 Jahre nach dem ursprünglichen HTTP. HTTP / 2 reduziert die Ladezeiten und verbessert die Kommunikation zwischen Servern und Browsern erheblich. Die Mehrheit der Browser hat bereits HTTP / 2 hinzugefügt, und aus Sicht der Benutzer hat sich nicht viel geändert. Das ist der Hauptgrund, warum viele von uns noch nichts davon gelesen oder gehört haben.

Was macht HTTP / 2?

Als Nachfolger von HTTP HTTP / 2 konzentriert sich auf die Verbesserung aller Eigenschaften von HTTP. Um die Abwärtskompatibilität mit dem älteren Protokoll aufrechtzuerhalten, werden die meisten Funktionen von HTTP beibehalten. Es führt jedoch einige drastische Verbesserungen ein.

Sowohl HTTP als auch HTTP / 2 definieren:

  • Welche Aktionen müssen Webbrowser und Server als Reaktion auf verschiedene Befehle ausführen?
  • Wie jede Information über das Web von einem auf einen anderen Computer übertragen wird.
  • Wie Nachrichten erstellt, formatiert und übertragen werden.

Mit anderen Worten, HTTP und HTTP / 2 legen die Standards für die Bereitstellung von Webinhalten auf Ihrem Computer fest, mit dem Unterschied, dass HTTP / 2 alles schneller macht als sein Vorgänger. Hier können Sie im Detail sehen, was HTTP / 2 macht.

Multiplexed Streams

Bidirektionale Serien von Textformatrahmen, die über das HTTP / 2-Protokoll zwischen einem Server und einem Client gesendet werden, werden als “Streams” bezeichnet. HTTP kann jeweils nur einen dieser „Streams“ übertragen. Nachdem der Stream gesendet wurde, gibt es eine Zeitverzögerung zwischen der nächsten Stream-Übertragung.

HTTP / 2 erstellt eine neue binäre Framing-Schicht, die das Problem der Übertragung von „Streams“ nacheinander direkt löst. Es ermöglicht Clients und Servern, die HTTP / 2-Nutzdaten in winzige, unabhängige und einfach zu verwaltende verschachtelte Frame-Sequenzen zu zerlegen. Alle diese Informationen werden wieder zusammengesetzt, sobald sie am anderen Ende empfangen wurden. Dieses Protokoll ermöglicht den Austausch mehrerer gleichzeitig geöffneter und unabhängiger bidirektionaler Sequenzen ohne Latenz zwischen aufeinanderfolgenden Streams.

Leistungen:

  • Die parallel gemultiplexten Anforderungen und Antworten blockieren sich nicht gegenseitig.
  • Eine einzelne TCP-Verbindung kann eine effektive Nutzung der Netzwerkressourcen sicherstellen, selbst wenn mehrere Datenströme übertragen werden.
  • Schnellere Webleistung, reduzierte Latenz und bessere Suchmaschinenergebnisse.
  • Reduzierte CapEx und OpEx beim Ausführen von Netzwerk- und IT-Ressourcen.

HTTP / 2 Server Push und Cache Push

Dies ist eine Funktion, mit der Server zusätzliche zwischenspeicherbare Informationen an Clients senden können. Diese Informationen werden nicht angefordert, aber für zukünftige Anfragen erwartet. Wenn der Client eine Ressource A anfordert und bekannt ist, dass auf eine andere Ressource B mit der angeforderten verwiesen wird, kann der Server B zusammen mit A verschieben, anstatt auf eine andere Clientanforderung zu warten. Anschließend speichert der Client die übertragene Ressource B zur zukünftigen Verwendung im Cache. Diese Funktion spart einen vollständigen Anfrage-Antwort-Roundtrip-Prozess und reduziert die Netzwerklatenz. Google hat Server Push ursprünglich im SPDY-Protokoll eingeführt.

Eine weitere Verbesserung von HTTP / 2 ist Cache Push. Dadurch wird der Cache des Clients proaktiv aktualisiert oder ungültig. Dies gibt Servern die Möglichkeit, mögliche Push-fähige Ressourcen zu identifizieren, die Clients eigentlich nicht möchten.

Leistungen:

  • Clients können Push-Ressourcen ablehnen, um ein effizientes Repository für zwischengespeicherte Ressourcen aufrechtzuerhalten (oder Server Push sogar vollständig deaktivieren).
  • Clients können die Anzahl der gleichzeitig gemultiplexten Push-Streams begrenzen.
  • Server können Push-Ressourcen priorisieren. Dies ist ein Schlüssel für den Leistungsunterschied zwischen HTTP / 2 und HTTP.
  • Server können Push-Ressourcen zusammen mit den vom Client angeforderten Informationen innerhalb derselben TCP-Verbindung multiplexen.
  • Clients können die zwischengespeicherten Ressourcen auf verschiedenen Seiten verwenden.
  • Clients speichern Push-Ressourcen im Cache-Speicher.

Binäre Protokolle

HTTP / 2 hat die Funktionen bei der Umwandlung des Textprotokolls in ein Binärprotokoll erheblich verbessert. Während HTTP zum Verarbeiten von Textbefehlen zum Ausführen von Anforderungs-Antwort-Zyklen verwendet wird, stützt sich HTTP / 2 auf binäre Befehle. Dies verkürzt die Zeit (auf 1s und 0s) für die Ausführung derselben Aufgaben.

Browser mit HTTP / 2-Unterstützung konvertieren die Textbefehle in Binärcode, bevor sie über das Netzwerk übertragen werden. Die binäre Framing-Schicht ist jedoch nicht abwärtskompatibel mit HTTP-Servern und -Clients.

Leistungen:

  • Verhindern von Sicherheitsbedenken im Zusammenhang mit dem Textcharakter von HTTP (z. B. Angriffe zur Aufteilung von Antworten).
  • Aktiviert HTTP / 2-Funktionen wie Komprimierung, Priorisierung, Multiplexing, effektive Handhabung von TLS und Flusskontrolle.
  • Kompakte Darstellung von Befehlen, die eine einfachere Implementierung und Verarbeitung ermöglichen.
  • Robuste und effektive Datenverarbeitung zwischen Clients und Servern.
  • Verbesserter Durchsatz und reduzierte Netzwerklatenz.
  • Im Vergleich zu HTTP sind die Fehlerwahrscheinlichkeiten geringer.
  • Hocheffiziente Nutzung der Netzwerkressourcen.
  • Geringer Overhead beim Parsen von Daten.
  • Geringerer Netzwerk-Footprint.

Stream-Priorisierung

Mit HTTP / 2 können Clients Einstellungen für bestimmte Datenströme vornehmen. Die Server sind nicht verpflichtet, die Anweisungen dieser Clients zu befolgen. Mit diesem Mechanismus können Server die Zuweisung von Netzwerkressourcen basierend auf den Benutzeranforderungen optimieren.

Die Stream-Priorisierung funktioniert mit Gewichtung und Abhängigkeiten, die jedem Stream zugewiesen sind. Trotz der Tatsache, dass alle Streams von Natur aus voneinander abhängig sind, haben sie eine Gewichtung zwischen 1 und 256. Mechanismen zur Priorisierung von Streams sind immer noch ein Thema der Debatte. Wenn jedoch die Stream-Priorisierung mit der HTTP / 2-Fähigkeit kombiniert wird, mehrere Datenströme in einer einzigen TCP-Verbindung zu verarbeiten, kann dies zum gleichzeitigen Eintreffen von Serveranforderungen mit unterschiedlicher Priorität führen.

Leistungen:

  • Reduzierte negative Auswirkungen von Bedenken hinsichtlich der Netzwerklatenz.
  • Verbesserte Benutzererfahrung und Geschwindigkeit beim Laden von Seiten.
  • Optimierung der Datenkommunikation zwischen Servern und Clients.
  • Hochwirksame Nutzung der Netzwerkressourcen.
  • Reduzierte Lieferzeit für primäre Inhaltsanforderungen.

Stateful-Header-Komprimierung

Wenn Benutzer über HTTP Websites mit medienreichen Inhalten durchsuchen, pushen Clients mehrere nahezu identische Header-Frames. Dies ist der Fall, weil jede Clientanforderung so viele Informationen enthalten muss, wie der Server benötigt, um die angeforderte Operation auszuführen. Dieser Prozess führt zu Latenz und unnötigem Ressourcenverbrauch.

HTTP / 2 bietet die Möglichkeit, eine große Anzahl redundanter Header-Frames zu komprimieren. Es basiert auf der HPACK-Spezifikation als sicherem und einfachem Ansatz für die Header-Komprimierung. Clients und Server führen eine Liste der Header, die in früheren Client-Server-Anforderungen verwendet wurden. Dies behebt direkt die Probleme mit redundanten Header-Frames.

Leistungen:

  • Codiert häufig verwendete Header und große Header. Dadurch müssen keine ganzen Header-Frames mehr gesendet werden. Die individuelle Größe jedes Streams schrumpft erheblich.
  • Verhindern von Sicherheitsangriffen wie CRIME beim Erkunden von Datenströmen mit komprimierten Headern.
  • Effiziente Nutzung von Multiplexmechanismen.
  • Effiziente Stream-Priorisierung.
  • Reduzierter Ressourcenaufwand.

Reale Vorteile von HTTP / 2

HTTP / 2 konzentriert sich auf die Maximierung des Technologiepotenzials, um zukünftige Bedürfnisse und Erwartungen zu erfüllen. Hier sind die realen Vorteile der Verwendung von HTTP / 2.

Web Performace und Mobile Web Performance – HTTP / 2 kann in einem Client-Server-Kommunikationszyklus mehr Daten senden und empfangen. Es funktioniert gut, um die Latenz beim Zugriff auf Internetdienste in mobilen Datennetzen und Netzwerken mit begrenzter Bandbreite pro Benutzer zu verringern.

Billigeres Highspeed-Internet – HTTP / 2 erhöht die Effektivität der Datenkommunikation. Dadurch können Internetanbieter die Gesamtkosten senken und gleichzeitig die Standards des Hochgeschwindigkeitsinternets beibehalten.

Sicherheit – HTTP / 2 ist nicht anfällig für Bedrohungen, die auf textbasierte Protokolle der Anwendungsschicht abzielen. Darüber hinaus wird der Ansatz „Security by Obscurity“ verwendet, um die Übertragung sensibler Daten zwischen Clients und Servern zu schützen.

Expansive Reichweite – HTTP / 2-Vorteile reduzieren die Internetergebnisse für Anbieter. Dies wird zu einer breiteren weltweiten Internetabdeckung führen.

Medienreiche Web-Erfahrung – Die technologischen Funktionen und Vorteile, die HTTP / 2 in das World Wide Web bringt, bieten eine Infrastruktur, die in der Lage ist, medienreiche Inhalte mit höheren Seitenladegeschwindigkeiten bereitzustellen.

Einpacken

HTTP / 2 ist ein relativ neues Protokoll, aber die Unterstützung dafür wächst kontinuierlich. Heutzutage unterstützen die meisten Internetbrowser HTTP / 2 (Microsoft Edge, Google Chrome, Safari, Firefox, Chrome für Android). Viele Webserver bieten native HTTP / 2-Unterstützung (Apache HTTP Server, Tomcat, NGINX). Ohne Zweifel ist HTTP / 2 das WWW-Protokoll der Zukunft.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *