Warum brauche ich HTTP / 2 für Websites?



    In naher Zukunft erwartet das Internet einen Übergang zum neuen HTTP / 2-Protokoll, wodurch das Laden von Websites beschleunigt wird. Wir werden verstehen, wie sich dies auf die Webentwicklung, die Suchmaschinenwerbung, die Website-Sicherheit und andere Aspekte auswirkt sowie was Sie für die HTTP / 2-Verbindung wissen müssen und wie Sie deren Unterstützung überprüfen können.

    Was ist HTTP / 2 und warum wird es benötigt?


    Das HTTP / 1.1-Protokoll wird seit 1999 verwendet und hat im Laufe der Zeit ein erhebliches Problem ergeben. Moderne Websites verwenden im Gegensatz zu den Websites des letzten Jahrhunderts viele verschiedene Elemente: Javascript-Skripte, CSS-Stile, Schriftarten, Videos und manchmal auch Flash-Animationen. Bei der Übertragung all dieser Einsparungen zwischen dem Browser und dem Server werden mehrere Verbindungen hergestellt.



    Das HTTP / 2-Protokoll beschleunigt das Öffnen von Websites aufgrund der folgenden Funktionen erheblich:
    • Verbindungen: Über eine einzige TCP-Verbindung können mehrere Anforderungen gesendet und Antworten in beliebiger Reihenfolge empfangen werden. Es ist nicht erforderlich, mehrere TCP-Verbindungen aufrechtzuerhalten.
    • Thread-Prioritäten: Der Client kann die Server-Prioritäten festlegen - welche Art von Ressourcen sind für ihn wichtiger als andere;
      Header-Komprimierung: Die Größe des HTTP-Headers kann reduziert werden.
    • Push-Senden von Daten von der Serverseite: Der Server kann Daten an den Client senden, die er noch nicht angefordert hat, z. B. basierend auf den Daten, die Benutzer der nächsten Seite öffnen.

    Die Entwicklung des HTTP / 2-Protokolls basierte auf einem anderen SPDY-Protokoll, das von Google entwickelt wurde. Google hat jedoch bereits angekündigt , die weitere Unterstützung für SPDY zugunsten eines vielversprechenderen HTTP / 2- Protokolls abzulehnen.

    Ist HTTP / 2 wirklich schneller?


    HttpWatch-Experten führten mehrere Tests durch und stellten fest, dass die Verwendung von HTTP / 2 zu einer erheblichen Beschleunigung führte.

    Der folgende Screenshot zeigt die Seitenladegeschwindigkeit mit HTTP / 1.1:



    In diesem Screenshot das Ergebnis mit HTTP / 2:



    Download-Geschwindigkeit um 23% erhöht. HttpWatch-Experten stellen außerdem fest, dass die Technologie noch nicht vollständig optimiert ist, und erwarten eine echte Beschleunigung in der Größenordnung von 30%.

    Es gibt mehrere weitere Dienste, die eine Demo oder die Möglichkeit bieten, den Geschwindigkeitsunterschied auf einer Live-Site zu überprüfen: HTTPvsHTTPS und LoadImpact .

    Spezialisten Airi.rfWir haben auch von Januar bis Februar 2016 getestet, um herauszufinden, wie viel eine echte (kleine oder mittlere) Site nach dem Wechsel zu HTTPS + HTTP / 2 gewinnen kann. Bei mehreren Sites, für die bereits eine vorläufige Geschwindigkeitsoptimierung durchgeführt wurde (Dateikomprimierung und -konsolidierung, Netzwerkoptimierung), erhöhte sich die Client-Download-Geschwindigkeit im Durchschnitt nur aufgrund der Einbeziehung von HTTP / 2 um 13 bis 18%.

    Erwähnenswert ist, dass nicht alle Experimente so eindeutig waren. Auf Habré wurde das Experiment des Yandex.Mail-Teams bereits beschrieben . Das SPDY-Protokoll wurde getestet, es sei jedoch daran erinnert, dass HTTP / 2 auf der Grundlage von SPDY entwickelt wurde und hinsichtlich der verwendeten Methoden sehr nahe daran liegt.

    Das Yandex.Mail-Team, das SPDY an Teilen seiner realen Benutzer getestet hatte, stellte fest, dass sich die durchschnittliche Downloadzeit nur um 0,6% änderte und den statistischen Fehler nicht überschritt. Die Experten von Yandex.Mail stellten jedoch fest, dass die Verwendung von SPDY einen positiven Punkt darstellt. Da die Anzahl der Verbindungen zu Servern gesunken ist (dies ist ein Schlüsselmerkmal von SPDY und HTTP / 2), hat sich die Belastung der Server erheblich verringert.

    Warum ist es wichtig, nach Möglichkeiten zu suchen, um das Laden von Websiteseiten zu beschleunigen?


    John Muller, Analyst beim Google Webmaster Trends-Team, schrieb in seinem Google+ Blog , dass eine HTTP / 2-Support-Website kein direkter Ranking-Faktor bei Google ist. Gleichzeitig ist die Download-Geschwindigkeit selbst ein wichtiger Ranking-Faktor. Daher ist es sinnvoll, HTTP / 2 für die SEO-Werbung zu verwenden.

    Er fügte hinzu, dass die Beschleunigung der Website selbst das Ranking aufgrund von Verhaltensfaktoren positiv beeinflussen sollte. Eine "schnellere" Seite weist eine geringere Absprungrate auf - höchstwahrscheinlich werden mehr Benutzer auf einer solchen Seite etwas tun, was sich auf das Ranking in der Suche auswirkt.

    John Muller berichtete ebenfallsDer Googlebot wird in Kürze HTTP / 2 unterstützen. Und wer weiß - vielleicht wird in Zukunft das Vorhandensein von HTTP / 2 auf der Website zu einem Ranking-Faktor. Schließlich ändern Suchmaschinen ständig die Algorithmen.

    Welche Browser unterstützen bereits HTTP / 2?


    Laut CanIUse.com sind dies die folgenden Browser:
    IE 11 unter Windows 10
    Kante 12 und 13;
    Firefox 36 - 45;
    Chrome 41 - 49;
    Safari 9;
    Opera 28 - 34;
    Safari für iOS 9.1;
    Opera 30 für Android;
    Chrome 46 für Android
    Firefox 41 für Android.

    Laut CanIUse.com macht dies etwa 70% des Datenverkehrs aus .

    Es ist klar, dass der Datenverkehr auf ihrer Website vom Durchschnitt im Internet abweichen kann, aber die Daten legen nahe, dass bereits ein relativ großer Teil der Benutzer Browser verwenden kann, die HTTP / 2 unterstützen.

    Website-Sicherheit


    Das Umschalten auf HTTP / 2 (jetzt) ​​bedeutet automatisch das Umschalten auf HTTPS (sicherer Modus der Site), andere Modi werden von Browsern nicht unterstützt. HTTPS verschlüsselt den gesamten Website-Verkehr und erfordert ein installiertes Zertifikat (ein normales DV-Zertifikat kann beispielsweise über WoSign oder Let's Encrypt absolut kostenlos bezogen werden ).

    Die Website-Verschlüsselung hilft nicht nur HTTP / 2. Google hat bereits angekündigt, dass die Website-Verschlüsselung ein positives Ranking-Signal darstellt .

    Tut HTTP / 2 etwas für Webentwickler?


    Ja Mit HTTP / 2 können Sie einen ganzen Wagen alter Tricks loswerden, mit denen das Laden von Seiten ohne HTTP / 2 beschleunigt werden soll. Wir listen sie auf:
    • Sharding-Domäne oder Verwendung mehrerer Schwester-Domänen zum Herunterladen von Dateien, damit mehr TCP-Verbindungen hergestellt werden können.
    • Sprites aus Bildern - Kombinieren Sie Bilder zu einer einzigen Datei, um die Anzahl der Anforderungen zu verringern. Eine solche Datei muss jedoch erst vollständig geladen werden, bevor mindestens ein Bild angezeigt wird. Darüber hinaus beansprucht die Verarbeitung großer Dateien mehr Speicherplatz.
    • Kombinieren von CSS- und Javascript-Dateien , um die Anzahl der Anfragen zu verringern und den belegten Speicher (und möglicherweise die Menge der heruntergeladenen Daten) zu erhöhen;
    • Inline-Einschlüsse oder das Einfügen von CSS und Javascript und manchmal sogar von Bildern in eine HTML-Datei, um die Anzahl der Verbindungen zu verringern (z. B. über base64). Gleichzeitig wird die Seite erst angezeigt, wenn die gesamte Datei geladen wurde.
    • Cookie-freie Domains : Laden Sie Bilder, CSS und Javascript von einer anderen Domain herunter, die keine Cookies verwendet.

    So verbinden Sie HTTP / 2


    Die HTTP / 2-Ära rückt näher: Viele Browser unterstützen dieses Protokoll bereits . Für die Implementierung sind keine Änderungen an der Website selbst erforderlich: Sie müssen die URL der Seiten nicht ändern, Sie müssen keine Links ändern, Weiterleitungen einfügen, Markups hinzufügen oder ändern oder zusätzliche Daten für die Google Search Console oder Yandex.Webmaster angeben (sofern Ihre Website bereits vorhanden ist) HTTPS wird verwendet). Wenn Ihre Site noch nicht den geschützten Modus verwendet, müssen Sie zur Verwendung von HTTP / 2 HTTPS (mit allen zugehörigen Aktionen) aktivieren.

    Die Implementierung von HTTP / 2 erfolgt auf dem Teil des Servers, der den Benutzern Seiten bereitstellt, dh auf dem Hosting. Wenn Sie externes Hosting verwenden, werden Ihre Seiten möglicherweise bereits in HTTP / 2 für alle unterstützten Browser bereitgestellt.

    Wenn Sie einen eigenen virtuellen oder dedizierten Server verwenden, wird nginx auf Modulebene um HTTP / 2-Unterstützung erweitert (Sie müssen zusätzlich ein SSL-Zertifikat und einen Schlüssel auf dem Server installieren): Eine gute Anleitung wurde bereits auf Habr hier veröffentlicht .

    Sie können die HTTP / 2-Unterstützung entweder über Browsererweiterungen für Firefox oder Chrome oder über eine Geschwindigkeitsprüfung auf der Website Air.rf überprüfen : Wenn HTTP / 2 unterstützt wird, ist das Ergebnis der Überprüfung ein grünes Häkchen [HTTP / 2.0].

    Jetzt auch beliebt: