Was sind HTTP/2 und HTTP/3 und warum sind sie wichtig

Evolution des HTTP-Protokolls
HTTP, also Hypertext Transfer Protocol, ist die Grundlage der Kommunikation im Web. Das Verständnis des Protokolls ist wichtig für die Wahl des richtigen Hostings. Jedes Mal, wenn Sie eine Webseite öffnen, sendet Ihr Browser eine HTTP-Anfrage an den Server, der mit dem angeforderten Inhalt antwortet. HTTP/1.1, eingeführt 1997, diente dem Web fast zwei Jahrzehnte lang, aber mit dem Wachstum der Komplexität moderner Websites wurden seine Einschränkungen immer offensichtlicher. Heutige Websites laden durchschnittlich 70 bis 100 Ressourcen pro Seite, einschließlich HTML, CSS, JavaScript, Bilder und Schriftarten, und HTTP/1.1 ist nicht für eine so intensive Kommunikation konzipiert.
HTTP/2 wurde 2015 als Antwort auf diese Einschränkungen veröffentlicht und brachte revolutionäre Änderungen in der Art und Weise, wie Browser und Server kommunizieren. HTTP/3, eingeführt 2022, geht einen Schritt weiter, indem es das TCP-Protokoll durch QUIC für noch schnellere und zuverlässigere Verbindungen ersetzt. Das Verständnis dieser Protokolle ist wichtig für jeden, der mit Webentwicklung oder Hosting zu tun hat, weil sie die Geschwindigkeit und Leistung der Website direkt beeinflussen.
HTTP/1.1 und seine Einschränkungen
Wie HTTP/1.1 funktioniert
HTTP/1.1 verwendet ein Textformat für Anfrage- und Antwort-Header und funktioniert nach dem Request-Response-Prinzip. Der Browser sendet eine Anfrage für eine Ressource, wartet auf die Antwort und sendet dann erst die nächste Anfrage. Dies ist als Head-of-Line-Blocking-Problem bekannt, bei dem eine langsame Anfrage alle nachfolgenden Anfragen blockiert. Um diese Einschränkung zu umgehen, öffnen Browser mehrere parallele TCP-Verbindungen zum selben Server, typischerweise 6 bis 8 Verbindungen, aber jede Verbindung erfordert einen separaten TCP-Handshake und TLS-Verhandlung, was Zeit und Ressourcen verbraucht.
Workarounds für HTTP/1.1
Webentwickler haben jahrelang verschiedene Tricks verwendet, um die Einschränkungen von HTTP/1.1 zu umgehen. Domain Sharding ist eine Technik, bei der Ressourcen über mehrere Subdomains verteilt werden, damit der Browser mehrere parallele Verbindungen öffnen kann. CSS-Sprites kombinieren viele kleine Icons in einem großen Bild, um die Anzahl der Anfragen zu reduzieren. Concatenation fügt mehrere JavaScript- oder CSS-Dateien in einer großen Datei zusammen. Inlining bettet kleine CSS- oder JavaScript-Blöcke direkt in das HTML ein. Alle diese Techniken verkomplizieren die Entwicklung und Wartung der Website und werden mit HTTP/2 überflüssig.
HTTP/2-Revolution
Multiplexing
Die wichtigste Innovation des HTTP/2-Protokolls ist Multiplexing, das das Senden mehrerer Anfragen und Antworten gleichzeitig über eine einzige TCP-Verbindung ermöglicht. Anstatt auf eine Antwort zu warten, bevor die nächste Anfrage gesendet wird, kann der Browser alle Anfragen gleichzeitig senden, und der Server antwortet, sobald die Daten bereit sind. Dies eliminiert Head-of-Line-Blocking auf Anwendungsebene und beschleunigt das Laden von Seiten mit vielen Ressourcen dramatisch. Eine Verbindung ersetzt die Notwendigkeit von 6 bis 8 parallelen Verbindungen, was Speicher und Prozessorzeit auf beiden Seiten spart.
Header-Kompression mit HPACK
HTTP/1.1 sendet Header als unkomprimierten Text mit jeder Anfrage. Cookie-Header können einige Kilobyte groß sein und werden mit jeder Anfrage an denselben Server gesendet. HTTP/2 verwendet den HPACK-Algorithmus zur Header-Kompression, der eine Tabelle zuvor gesendeter Header pflegt und nur die Unterschiede sendet. Dies reduziert die Header-Größe um 85 bis 95 Prozent, was besonders bedeutend für Websites mit großen Cookies oder vielen benutzerdefinierten Headern ist.
Server Push
Die Server-Push-Funktionalität ermöglicht es dem Server, Ressourcen proaktiv an den Browser zu senden, bevor der Browser sie explizit anfordert. Wenn der Browser beispielsweise eine HTML-Seite anfordert, kann der Server sofort auch CSS- und JavaScript-Dateien senden, von denen er weiß, dass sie benötigt werden. Dies eliminiert die Verzögerung zwischen dem Parsen des HTML und dem Senden von Anfragen für verbundene Ressourcen. In der Praxis muss Server Push sorgfältig verwendet werden, weil zu aggressives Pushen von Ressourcen Bandbreite für Ressourcen verbrauchen kann, die der Browser bereits im Cache hat.
Binärformat
HTTP/2 verwendet ein Binärformat anstelle des Textformats von HTTP/1.1. Das Binärformat ist effizienter beim Parsen, weil Computer von Natur aus mit Binärdaten arbeiten, fehlertoleranter, weil es eine klar definierte Frame-Struktur hat, und kompakter, weil es keine Bytes für Text-Trennzeichen und Whitespace verbraucht. Jede HTTP/2-Nachricht wird in Frames aufgeteilt, die zu einem bestimmten Stream gehören, und mehrere Streams werden über eine Verbindung multiplexiert.
Stream-Priorisierung
HTTP/2 ermöglicht dem Browser, jeder Anfrage eine Priorität zuzuweisen. CSS-Dateien, die das Rendern der Seite blockieren, können eine höhere Priorität als Bilder erhalten, die unterhalb des Folds geladen werden. Der Server verwendet diese Prioritäten, um zu entscheiden, in welcher Reihenfolge Daten gesendet werden, wenn die Bandbreite nicht alle Anfragen gleichzeitig erfüllen kann. Dies führt zu einer schnelleren Anzeige des sichtbaren Inhalts der Seite, selbst wenn alle Ressourcen noch geladen werden.
HTTP/3 und QUIC-Protokoll
Problem mit TCP
Obwohl HTTP/2 viele Probleme auf Anwendungsebene löst, verwendet es weiterhin TCP für den Transport. TCP hat ein eigenes Head-of-Line-Blocking-Problem, weil bei Verlust eines Pakets alle nachfolgenden Pakete warten müssen, bis das verlorene Paket erneut gesendet und empfangen wird. In HTTP/2, wo sich alle Streams eine TCP-Verbindung teilen, blockiert der Verlust eines Pakets alle Streams, sogar diejenigen, deren Pakete erfolgreich angekommen sind. Auf instabilen Netzwerken wie mobilen oder WLAN-Netzwerken kann das ein erhebliches Problem sein.
QUIC-Protokoll
HTTP/3 ersetzt TCP durch das QUIC-Protokoll, das von Google entwickelt wurde und über UDP läuft. QUIC implementiert zuverlässige Datenzustellung unabhängig für jeden Stream, was bedeutet, dass der Paketverlust in einem Stream andere Streams nicht blockiert. QUIC integriert auch TLS 1.3-Verschlüsselung direkt in das Transportprotokoll und eliminiert die Notwendigkeit eines separaten TLS-Handshakes. Das Ergebnis ist eine schnellere Verbindungsherstellung, weil der QUIC-Handshake Transport- und kryptografische Parameter in einem Schritt kombiniert.
Zero Round Trip Connection
QUIC unterstützt 0-RTT (Zero Round Trip Time) für die Verbindungsherstellung bei wiederholten Besuchen. Wenn ein Nutzer eine Website erneut besucht, die er zuvor besucht hat, kann QUIC sofort Daten ohne Handshake senden und verwendet dabei kryptografische Parameter aus der vorherigen Sitzung. Dies ist besonders bedeutend für mobile Nutzer, die häufig zwischen WLAN und Mobilfunknetz wechseln, weil die QUIC-Verbindung den IP-Adresswechsel dank der Connection ID statt der Identifikation per IP-Adresse und Port überlebt.
Verbindungsmigration
Eine TCP-Verbindung ist durch ein Paar aus IP-Adressen und Ports definiert, was bedeutet, dass die Verbindung beim Wechsel der IP-Adresse unterbrochen wird. Wenn ein mobiler Nutzer von WLAN auf Mobilfunknetz wechselt, werden alle TCP-Verbindungen unterbrochen und müssen erneut hergestellt werden. QUIC verwendet eine Connection ID zur Verbindungsidentifikation statt der IP-Adresse, was eine reibungslose Migration zwischen Netzwerken ohne Unterbrechung der Datenübertragung ermöglicht. Der Nutzer bemerkt den Übergang nicht, und die Website lädt ohne Unterbrechung weiter.
Leistung in der Praxis
Geschwindigkeitsmessungen
In der Praxis bringt HTTP/2 eine Ladegeschwindigkeitsverbesserung von 15 bis 50 Prozent im Vergleich zu HTTP/1.1, je nach Komplexität der Website. Websites mit vielen kleinen Ressourcen profitieren am meisten, weil Multiplexing den Overhead des Öffnens mehrerer Verbindungen eliminiert. HTTP/3 bringt eine zusätzliche Verbesserung von 5 bis 15 Prozent unter idealen Bedingungen, aber auf instabilen Netzwerken mit häufigem Paketverlust kann die Verbesserung dank der Eliminierung von Head-of-Line-Blocking auf Transportebene 30 Prozent oder mehr betragen.
Einfluss auf Core Web Vitals
HTTP/2 und HTTP/3 verbessern direkt die Core Web Vitals-Metriken, die Google für das Ranking verwendet. Überprüfen Sie die Leistung Ihrer Website. Largest Contentful Paint verbessert sich, weil Ressourcen schneller parallel geladen werden. First Input Delay reduziert sich, weil JavaScript schneller heruntergeladen und ausgeführt wird. Cumulative Layout Shift verbessert sich, weil Schriftarten und Bilder schneller geladen werden und Inhaltsverschiebungen reduziert werden. Time to First Byte verbessert sich mit HTTP/3 dank schnellerer Verbindungsherstellung.
Wie man HTTP/2 und HTTP/3 aktiviert
Server-Unterstützung
HTTP/2 erfordert eine HTTPS-Verbindung (gültiges TLS-Zertifikat), weil alle modernen Browser HTTP/2 nur über TLS unterstützen. Die meisten modernen Webserver einschließlich Nginx, Apache und LiteSpeed unterstützen HTTP/2 mit einfacher Konfiguration. Für Nginx reicht es, den Parameter http2 zur listen-Direktive hinzuzufügen. Apache erfordert die Aktivierung des mod_http2-Moduls. HTTP/3 erfordert Unterstützung für das QUIC-Protokoll, das derzeit Nginx mit dem quic-Modul, LiteSpeed, Cloudflare und andere CDN-Anbieter bieten.
Protokollprüfung
Sie können prüfen, welches HTTP-Protokoll Ihre Website verwendet, mit Chrome DevTools. Öffnen Sie den Network-Tab, klicken Sie mit der rechten Maustaste auf den Spaltentitel und fügen Sie die Spalte Protocol hinzu, und aktualisieren Sie die Seite. Sie sehen h2 für HTTP/2 oder h3 für HTTP/3 neben jeder Anfrage. Online-Tools wie KeyCDN HTTP/2 Test und HTTP/3 Check ermöglichen eine schnelle Überprüfung ohne Tool-Installation.
Fazit
HTTP/2 und HTTP/3 sind bedeutende Verbesserungen, die schnelleres Laden von Websites, ein besseres Nutzererlebnis und besseres Ranking bei Google bringen. HTTP/2 Multiplexing, Header-Kompression und Server Push eliminieren viele Einschränkungen des alten HTTP/1.1-Protokolls. HTTP/3 mit dem QUIC-Protokoll löst Probleme mit Paketverlust und Verbindungsmigration, besonders nützlich für mobile Nutzer. Bei BeoHosting unterstützen alle Hosting-Pakete HTTP/2, und unsere fortgeschrittenen Pakete umfassen auch HTTP/3-Unterstützung für maximale Leistung Ihrer Website.
BeoHosting Team
10+ Jahre Erfahrung — Spezialisten für Webhosting und Infrastruktur
- Web Hosting
- WordPress Hosting
- VPS
- Dedicated Serveri
- Domeni
- SSL
- cPanel
- LiteSpeed
- Linux administracija
- DNS
Zuletzt aktualisiert: