HTTP / 2 ist einer der wichtigsten Meilensteine im modernen Web. Dieser Artikel hebt den aktuellen Status von HTTP hervor und stellt die Hauptvorteile (und einige nichttechnische Konzepte) von HTTP / 2 vor. Wir werden auch lernen, wie man HTTP / 2 für WordPress im Jahr 2018 implementiert.
Contents
Eine kurze Geschichte von HTTP
HTTP steht für Hypertext Transfer Protocol, das 1991 von Tim Berners Lee erstellt wurde. Tim ist der Mann, dem wir für das World Wide Web danken müssen. HTTP ist eines der allgegenwärtigsten und am weitesten verbreiteten Anwendungsprotokolle im Internet. Aber es ist nicht der einzige.
Warte eine Sekunde. Ich habe den Satz hervorgehoben Anwendungsprotokolle. Warum ist das so? Sie sehen, das Internet besteht eigentlich aus vier hierarchischen Protokollebenen. Jede Schicht besteht aus einer Reihe von Protokollen und ist verantwortlich für a Hauptfunktion.
Die IP-Suite (Internet Protocol) besteht aus vier Ebenen:
- Anwendungsschicht
- Transportschicht
- Internet-Schicht
- Verbindungsschicht
Internetprotokollschichten. Quelle: Wikipedia
Ohne zu sehr auf Details einzugehen, sind die letzten drei Schichten (d. H. Transport-, Internet- und Link-Schichten) dafür verantwortlich, eine zuverlässige Verbindung für den Datenaustausch herzustellen.
Die oberste Schicht heißt Anwendungsschicht, das dient allen Anwendungen im Internet.
- Das Anzeigen von Webseiten ist eine Anwendung im Internet, die durch das HTTP-Protokoll ermöglicht wird.
- E-Mail ist eine weitere Anwendung im Internet – ermöglicht durch das POP- oder IMAP-Protokoll.
Es gibt mehrere Protokolle in der Anwendungsschicht im Internet macht das Dinge wie YouTube Live Videos und Clash of Clans möglich.
Die Geburt von HTTP / 2
HTTP ist die gemeinsame Sprache zwischen Clients und Servern und ermöglicht das moderne Web. Von seinen einfachen Anfängen als einzelner Schlüsselwort- und Dokumentpfad ist es nicht nur für Browser, sondern für praktisch jede mit dem Internet verbundene Software- und Hardwareanwendung das Protokoll der Wahl geworden.
Dies wirft die Frage auf – Wie oft aktualisieren wir diese wichtige Software?? Nun, wie sich herausstellt – nicht sehr oft
Das letzte Mal, dass das HTTP-Protokoll aktualisiert wurde, war im Jahr 1997 – zehn Jahre bevor das erste iPhone auf den Markt kam! Das war HTTP Version 1.1 und 20 Jahre später ist es immer noch die am weitesten verbreitete HTTP-Version!
Alles, was im Internet passiert – vom Streaming von Katzenvideos über Live-Video-Chats von der Internationalen Raumstation bis hin zu Billionen von Online-Transaktionen – geschieht über die Technologie, für die noch kein Update durchgeführt wurde zwei Dekaden. Im Laufe der Jahre haben wir enorme Fortschritte bei der Erstellung neuer Anwendungen für das Internet erzielt. All dies haben wir jedoch durch Erstellen erreicht Problemumgehungen von den Einschränkungen von HTTP / 1.1
Ich möchte nicht sagen, dass HTTP / 1.1 schlecht ist. Aber es kann Verwenden Sie auf jeden Fall ein Update. Und deshalb im Jahr 2015 Internettechnik-Arbeitsgruppe Verdoppelung bei der Erstellung eines besseren Protokolls für HTTP.
Das Ergebnis war ein neues Protokoll, das nahtlos mit allen auf HTTP / 1.1 ausgeführten Dingen zusammenarbeitete und die zugrunde liegende Technologie ernsthaft verbesserte. Dieses neue Protokoll wurde HTTP / 2 genannt.
Was hat sich in HTTP / 2 geändert??
Viele Dinge eigentlich. Aber wir werden hier nicht alle behandeln. Ich bin mir ziemlich sicher, dass Sie sich bis dahin langweilen werden und noch sicherer, dass ich das Zeug nicht auf eine nicht geekige Art und Weise erklären kann. Aber wenn es um HTTP / 2 für WordPress geht, sind hier einige wichtige Punkte.
Multiplexing
In HTTP / 1.1 mussten der Server und der Client einzelne Verbindungen herstellen, um Ressourcen anzufordern. Lassen Sie mich mit dieser schönen Illustration von UpWork erklären:
Illustration des Multiplexens durch UpWork
Eine Website besteht aus HTML, CSS, JavaScript, Bildern und anderen Dateien. Diese Dateien werden gemeinsam als Ressourcen bezeichnet. In diesem Beispiel gibt es eine Website, die aus drei Ressourcen besteht: einer JavaScript-Datei, einer CSS-Datei und einer Bilddatei.
Wir sehen, dass der Browser in HTTP / 1.1 drei TCP-Verbindungen mit dem Server benötigt, um diese Ressourcen anzufordern. Warum? Da in HTTP / 1.1 jede Verbindung nur eine Anforderung anfordern kann. Eine größere Anzahl von Verbindungen führt normalerweise zu Staus, die am besten als Ressourcenstau bezeichnet werden können – was letztendlich zu einer langsamen Website-Erfahrung führt.
HTTP / 2 unterstützt Multiplexing
Multiplexing ist eine Technologie, mit der Server mehrere Dateien über eine einzige Verbindung senden können. Wenn dieselbe Website HTTP / 2 verwendet, können alle drei Ressourcen über eine einzige Verbindung gesendet werden. Folglich würden Ladezeiten und der Verbrauch von Netzwerkressourcen erheblich reduziert. Einfacher ausgedrückt, mit weniger können Sie mehr erreichen. HTTP / 2 für WordPress ist also eine großartige Möglichkeit, Ihre WordPress-Site (möglicherweise) zu beschleunigen.
Domain Sharding & andere Verbesserungen
Denken Sie daran, wie neuere Anwendungen Problemumgehungen erfordern, um bestimmte Einschränkungen von HTTP / 1.1 zu überwinden. Domain Sharding ist eine solche Problemumgehung. Schauen wir uns an, warum Domain-Sharding erforderlich ist.
In der Regel begrenzt HTTP / 1.1 die maximale Anzahl offener Verbindungen zwischen einem Server (einer Domäne) und einem Client. Die meisten Websites verfügen über mehrere Ressourcen, die parallel geladen werden müssen. Um das Laden von Websites zu beschleunigen, wurden die Ressourcen von Websites aus mehreren Subdomains bereitgestellt. Dies wird als Domain-Sharding bezeichnet.
Illustration von Domain Sharding von UpWork
Mit HTTP / 2 ist keine Domänenfreigabe mehr erforderlich. Nicht, weil HTTP / 2 die maximale Anzahl offener Verbindungen nicht begrenzt. Aber weil HTTP / 2 Multiplexing unterstützt. Alle Ressourcen können direkt in einer Verbindung gesendet werden!
Dank des Multiplexens in HTTP / 2 sind viele dieser Problemumgehungen nicht mehr erforderlich. Diese beinhalten CSS-Sprites, Inline-Bilder in CSS mit Daten-URIs, und Verkettung von CSS und JavaScript. Um es zu setzen Smashing MagazineWorte:
HTTP-Anfragen sind in der Welt von HTTP / 2 billig. Die Organisation Ihrer Assets während der Entwicklung nach den Seiten, auf denen sie verwendet werden, ist weitaus besser. Sie können dann nur den Code bereitstellen, den der Besucher benötigt. Das Herunterladen vieler kleiner Stylesheets spielt keine Rolle. Sie können auch danach organisieren, wie häufig sich die Dinge ändern. Vermögenswerte mit Langlebigkeit könnten dann länger gepflegt werden.
Unterstützung für binäre Protokolle
Wir wissen, dass Computer in Nullen und Einsen sprechen, oder? Nun, so sprach HTTP / 1.x nicht. HTTP1.x wird zum Verarbeiten von Textbefehlen verwendet, um Anforderungs- / Antwortzyklen abzuschließen.
HTTP / 2 unterstützt die Konvertierung von einem Textprotokoll in ein Binärprotokoll. Dies ermöglicht es dem Server und dem Client, anstelle von tatsächlichem Text in Nullen und Einsen zu sprechen, wodurch der Zeit- und Energieverbrauch für die Durchführung derselben Anforderungs- / Antwortzyklen erheblich reduziert wird.
HTTP / 2 Server Push
Die Erklärung dieser Funktion kann etwas kompliziert sein, aber ich werde versuchen, sie einfach zu halten. Im klassischen HTTP / 1.1-Szenario sendet ein Server (oder eine Website) nur dann Ressourcen an den Client (Browser), wenn der Client die Ressource anfordert. Dies ist das typische Request-Response-Szenario.
HTTP / 2 führt jedoch das Konzept eines Server-Push ein, bei dem der Server zum ersten Mal Ressourcen (oder Informationen) an den Client senden kann, ohne dass der Client die Ressource explizit anfordern muss. Dieser Mechanismus speichert einen Request-Response-Roundtrip und reduziert die Netzwerklatenz.
Webentwickler können Anwendungen erstellen, die Server Push nutzen, und zusätzliche Ressourcen / Informationen an den Client senden, indem sie Anforderungen antizipieren. Endresultat? Schnellere und flüssigere Anwendungen.
Header-Komprimierung
HTTP / 2 verwendet beim Datenaustausch zwischen Client und Server die sogenannte HPACK-Header-Komprimierung. Bevor wir uns damit befassen, warum dies wichtig ist, ist es an der Zeit, etwas mehr über Protokolle zu lernen.
Eine Dateneinheit in einem beliebigen Protokoll (einschließlich HTTP) besteht aus drei Kernkomponenten – Kopf-, Nutzlast- und Fußzeile.
- Header: Der Header enthält Informationen zur Dateneinheit
- Nutzlast: Dies sind die tatsächlichen Daten, die vom Server zum Client transportiert werden
- Fußzeile: Dies ist eine Art Checkliste, die sicherstellt, dass die Dateneinheit ohne Fehler erfolgreich geliefert wurde.
Die Header-Komprimierung funktioniert auf ziemlich einfache Weise – der Server komprimiert die Header-Informationen Vor Übertragen an den Client. Beim Empfang der Dateneinheit (oder des Pakets) dekomprimiert der Client den Header und zeigt ihn dem Benutzer (oder für ihn) an (oder verwendet ihn).
Da medienreiche Websites (wie Netflix oder die New York Times) heutzutage zur Norm werden, kann die HPACK-Header-Komprimierung von HTTP / 2 beim Übertragen von Daten vom Server zum Client viel Bandbreite sparen.
Verbessertes TLS
TLS steht für Transport Layer Security, die Technologie, die Verbindungen zwischen Server und Clients verschlüsselt. Wir wissen, dass HTTPS hat. Diese Technologie verhindert, dass Hacker bei Online-Transaktionen unsere Kreditkarteninformationen und andere personenbezogene Daten stehlen.
HTTP / 2 funktioniert einwandfrei mit der vorhandenen TLS-Technologie und bietet eine Vielzahl erweiterter Funktionen wie weniger TLS-Handshakes, geringen Ressourcenverbrauch auf Client- und Serverseite sowie verbesserte Funktionen zur Wiederverwendung vorhandener Websitzungen, während bestimmte mit HTTP / 1 verbundene Schwachstellen beseitigt werden .x.
Ist die Welt bereit für HTTP / 2??
Nun, das hängt davon ab. Die meisten modernen Browser, einschließlich Chrome und Firefox, unterstützen das HTTP / 2-Protokoll. Wenn Sie über die Ressourcen verfügen, um das HTTP / 2-Protokoll zu implementieren, sollten Sie dies tun.
CanIUse.com bietet eine aktuelle Kompatibilitätsprüfung für HTTP / 2 unter den wichtigsten Webbrowsern
Erste Schritte mit HTTP / 2 für WordPress?
Die Implementierung von HTTP / 2 auf Ihrem WordPress-Host erfordert viel technisches Know-how. Wenn Sie ein Entwickler oder ein Netzwerk sind und Server verwalten, sind Sie genau das Richtige.
Die gute Nachricht ist, dass die Implementierung von HTTP / 2 für WordPress dank guter WordPress-Hosting-Anbieter einfach ist. Zum Beispiel unterstützen sowohl WPEngine als auch Kinsta HTTP / 2 und verfügen über alle erforderlichen Fallbacks, um sicherzustellen, dass Website-Besucher, die das neue Protokoll nicht unterstützen, eine zuverlässige, vollständig optimierte Version von HTTP / 1.1 erhalten.
Aus Sicht eines Internetbenutzers müssen Sie nichts anderes tun, als die neueste Version Ihres Browsers herunterzuladen. Wenn die Website mit HTTP / 2 kompatibel ist, kommuniziert Ihr Browser automatisch mit ihr über das neue Protokoll. HTTP / 2 ist jedoch vollständig abwärtskompatibel, sodass Websites, die weiterhin das alte HTTP verwenden, nicht betroffen sind. Das heißt, Sie können sich einfach zurücklehnen und schneller Websites laden.
HTTP / 2 für WordPress einpacken
HTTP / 2 für WordPress ist ein dringend benötigtes, revolutionäres Update für eine der weltweit führenden Technologien. Es würde jedoch eine dauern Menge Zeit für HTTP / 2, um Mainstream zu werden – wie HTTPS-Websites. Der Zweck dieses Artikels ist es jedoch, unseren Lesern diese wunderbare Technologie vorzustellen, die möglicherweise das Gesicht des World Wide Web verändern könnte.
Gedanken zu HTTP / 2 für WordPress? Fragen? Lass es uns in den Kommentaren unten wissen!