Skip to content
IRC-CodingIRC-Coding
HTTP/2HTTP/3HTTPProtokolleNetzwerkeQUICUDPTCPTLS 1.3MultiplexingHeader CompressionServer PushPerformanceSicherheitWebentwicklung

HTTP/2 und HTTP/3 Protokolle im Überblick: Leistung, Sicherheit und Vorteile

Detaillierte Erklärung der HTTP/2 und HTTP/3 Protokolle. Lerne Multiplexing, Header Compression, QUIC, UDP, TLS 1.3, Sicherheit und Leistungsvorteile im Prüfungsstil.

S

schutzgeist

8 min read
HTTP/2 und HTTP/3 Protokolle im Überblick: Leistung, Sicherheit und Vorteile

HTTP/2 und HTTP/3 Protokolle im Überblick: Leistung, Sicherheit und Vorteile

Du nutzt es jeden Tag und hast das Protokoll vielleicht mal nebenläufig gelesen. Im Grunde ist es hier eine normale Entwickung in Richtung Sicherheit und Bereitstellung moderner Strukturen.

HTTP ist das Protokoll, das das World Wide Web antreibt. Während HTTP/1.1 über Jahrzehnte den Standard setzte, brachten HTTP/2 und HTTP/3 erhebliche Leistungsverbesserungen. In diesem Artikel erkläre ich Dir die Unterschiede, Vorteile und technischen Grundlagen im Prüfungsstil.

Warum HTTP weiterentwickelt werden musste

HTTP/1.1 hat zwei grundlegende Probleme:

  1. Head-of-Line Blocking: Über eine TCP-Verbindung läuft nur eine Anfrage nach der anderen. Browser umgehen dies durch mehrere parallele Verbindungen, aber jede Verbindung kostet Zeit für Aufbau und TLS-Handshake.
  2. Unkomprimierte Header: Header werden bei jeder Anfrage und Antwort vollständig und unkomprimiert übertragen. Das erzeugt bei vielen Anfragen erheblichen Overhead.

Diese Probleme führten zu HTTP/2 und HTTP/3.

HTTP/2 Grundlagen

HTTP/2 wurde 2015 als RFC 7540 veröffentlicht. Es ändert die Übertragungsschicht, nicht die Semantik. Anfragen und Antworten sehen für Webentwickler gleich aus, werden aber effizienter transportiert.

Binary Framing

HTTP/1.1 überträgt Daten als lesbaren Text. HTTP/2 verwendet ein binäres Framing. Nachrichten werden in kleine Pakete, sogenannte Frames, aufgeteilt. Diese Frames gehören zu Streams, die wiederum zu einer Verbindung gehören.

Beispiel:

Wenn Du eine Webseite aufrufst, werden HTML, CSS, JavaScript und Bilder über separate Streams innerhalb einer TCP-Verbindung übertragen.

Multiplexing

HTTP/2 ermöglicht Multiplexing. Mehrere Anfragen und Antworten laufen gleichzeitig über eine einzige TCP-Verbindung. Das beseitigt das Head-of-Line Blocking von HTTP/1.1.

Vergleich: HTTP/1.1 ist eine einspurige Straße. HTTP/2 ist eine mehrspurige Autobahn.

Header Compression mit HPACK

HTTP/2 verwendet HPACK, um Header zu komprimieren. Wiederkehrende Headerfelder werden in einer Tabelle gespeichert und nur bei Änderungen übertragen.

Beispiel: User-Agent: Mozilla/5.0 wird bei HTTP/1.1 bei jeder Anfrage neu übertragen. Bei HTTP/2 wird es nach der ersten Anfrage referenziert.

Server Push

Mit HTTP/2 kann der Server Ressourcen proaktiv an den Client senden, bevor dieser sie explizit anfragt. Wenn der Client eine HTML-Datei anfordert, kann der Server CSS und JavaScript mitschicken. Server Push ist in der Praxis umstritten, weil es zu übermäßigem Datentransfer führen kann.

Stream Priorisierung

HTTP/2 erlaubt die Priorisierung einzelner Streams. Wichtige Ressourcen wie CSS oder kritisches JavaScript werden zuerst übertragen.

HTTP/2 Leistungsvorteile

  • Schnellere Ladezeiten: Multiplexing und Header Compression reduzieren Latenz.
  • Weniger TCP-Verbindungen: Eine Verbindung pro Host reicht meist.
  • Bessere Ressourcennutzung: Server und Netzwerk werden effizienter genutzt.
  • Geringerer Overhead: Binäre Übertragung und komprimierte Header sparen Daten.

HTTP/3 Grundlagen

HTTP/3 wurde 2022 als RFC 9114 veröffentlicht. HTTP/2 setzt auf TCP, HTTP/3 auf QUIC, das auf UDP basiert.

QUIC statt TCP

QUIC ist ein von Google entwickeltes Transportprotokoll:

  • Schneller Verbindungsaufbau: QUIC kombiniert Verbindungsaufbau und TLS-Handshake in einem Schritt. Das spart typischerweise ein Round Trip.
  • 0-RTT Resumption: Bei erneutem Verbindungsaufbau kann der Client sofort Daten senden, ohne neuen Handshake.
  • Connection Migration: QUIC verwendet eine VerbindungsID, die unabhängig von IP-Adresse und Port ist. Wechsel von WLAN auf Mobilfunk bleibt dadurch nahtlos.

UDP als Basis

UDP ist verbindungslos und unzuverlässig. Es gibt keine Garantie für Reihenfolge oder Empfang. QUIC baut auf UDP auf und übernimmt selbst Zuverlässigkeit, Reihenfolge und Flusskontrolle.

TLS 1.3 Integration

HTTP/3 erfordert TLS 1.3. Sicherheit ist bei HTTP/3 obligatorisch. TLS 1.3 ist schneller als TLS 1.2, weil es den Handshake reduziert und veraltete Algorithmen entfernt.

Verbessertes Head-of-Line Blocking

Bei HTTP/2 kann ein verlorenes TCP-Paket alle Streams blockieren. Bei HTTP/3 ist jeder Stream unabhängig. Ein verlorenes Paket blockiert nur den betroffenen Stream.

HTTP/3 Leistungsvorteile

  • Noch schnellerer Verbindungsaufbau: Durch QUIC und TLS 1.3 entfällt der separate TCP-Handshake.
  • Bessere Mobilität: Connection Migration ermöglicht nahtlosen Netzwerkwechsel.
  • Weniger Head-of-Line Blocking: Streams sind unabhängiger.
  • Höhere Sicherheit: TLS 1.3 ist obligatorisch.
  • Bessere Performance bei schlechten Netzwerken: QUIC reagiert schneller auf Paketverluste.

Vergleich HTTP/1.1, HTTP/2 und HTTP/3

EigenschaftHTTP/1.1HTTP/2HTTP/3
TransportprotokollTCPTCPUDP mit QUIC
ÜbertragungTextBinärBinär
MultiplexingNeinJaJa
Header CompressionNeinHPACKQPACK
Server PushNeinJaOptional
VerbindungsaufbauLangsamSchnellerAm schnellsten
TLSOptionalOptionalObligatorisch
Head-of-Line BlockingAuf AnwendungsebeneAuf TCP-EbeneAuf Stream-Ebene
Connection MigrationNeinNeinJa

Sicherheit bei HTTP/2 und HTTP/3

HTTP/2 Sicherheit

HTTP/2 wird in der Praxis fast immer mit TLS eingesetzt. Wichtige Sicherheitsaspekte:

  • TLS-Verschlüsselung: Daten werden während der Übertragung geschützt.
  • HPACK DoS Schutz: Grenzen für Headergrößen und Streamanzahlen erschweren Denial-of-Service-Angriffe.
  • Ressourcenlimits: Server begrenzen die Anzahl gleichzeitiger Streams.

HTTP/3 Sicherheit

  • TLS 1.3 obligatorisch: Es gibt keine unverschlüsselte HTTP/3-Verbindung.
  • Schnellere Sicherheit: Der TLS-Handshake ist effizienter.
  • 0-RTT Risiken: 0-RTT Resumption kann theoretisch für Replay-Angriffe missbraucht werden. Sensible Aktionen sollten nicht im ersten 0-RTT-Paket ausgeführt werden.

Welche TLS-Version sollte mein Server unterstützen?

Wenn Du einen Webserver oder HTTP-Server einrichtest, kannst Du oft mehrere TLS-Versionen aktivieren. Die Frage ist, welche sinnvoll sind und welche Du besser deaktivierst.

Nur TLS 1.2 und TLS 1.3 aktivieren

Das ist die empfohlene Standardeinstellung für moderne Webserver:

  • TLS 1.3 ist die aktuelle Version. Sie ist schneller und sicherer als TLS 1.2.
  • TLS 1.2 ist noch nötig, weil einige ältere Clients oder Systeme TLS 1.3 nicht unterstützen.

TLS 1.0 und TLS 1.1 deaktivieren

Diese Versionen solltest Du nicht mehr verwenden:

  • Sicherheitslücken: TLS 1.0 und TLS 1.1 enthalten bekannte Schwachstellen wie BEAST und POODLE.
  • Veraltete Algorithmen: Sie unterstützen unsichere Cipher Suites wie RC4 oder SHA-1.
  • Browserunterstützung: Moderne Browser warnen vor Seiten, die TLS 1.0 oder 1.1 verwenden.

SSL 2.0 und SSL 3.0 auf keinen Fall aktivieren

SSL ist die Vorgängerversion von TLS. SSL 2.0 und SSL 3.0 gelten als unsicher und sollten vollständig deaktiviert sein.

Alle TLS-Versionen aktivieren ist falsch

Es mag verlockend klingen, Kompatibilität zu maximieren, indem Du alle Versionen erlaubst. Das ist aber ein Sicherheitsrisiko:

  • Downgrade-Angriffe: Ein Angreifer kann eine Verbindung auf eine schwächere TLS-Version zwingen, wenn ältere Versionen erlaubt sind.
  • Veraltete Algorithmen: Ältere TLS-Versionen erlauben unsichere Verschlüsselungsverfahren.
  • Compliance: Viele Sicherheitsstandards wie PCI DSS verbieten TLS 1.0 und 1.1.

Empfohlene Einstellung

Für die meisten modernen Webserver gilt:

  • TLS 1.3 aktivieren: Ja, immer.
  • TLS 1.2 aktivieren: Ja, für ältere Kompatibilität.
  • TLS 1.1 und TLS 1.0: Nein, deaktivieren.
  • SSL: Nein, auf keinen Fall.

Wenn Du ausschließlich moderne Clients bedienst, kannst Du auch TLS 1.2 deaktivieren und nur TLS 1.3 erlauben. Für öffentliche Webseiten solltest Du aber TLS 1.2 zusätzlich aktivieren, um ältere Clients nicht auszuschließen.

Und bedenke immer: Ein Client mit alten Strukturen willst Du ggf. auch nicht als Besucher haben.

Praktische Beispiele http

Die folgenden Beispiele erklären relativ gut, warum NEU auch BESSER ist.

Beispiel 1: Ladezeit einer Webseite

Eine Webseite benötigt 100 Ressourcen. Bei HTTP/1.1 öffnet der Browser mehrere TCP-Verbindungen. Bei HTTP/2 werden alle Ressourcen parallel übertragen. Bei HTTP/3 entfällt zusätzlich der TCP-Handshake.

Beispiel 2: Video-Streaming

Bei Video-Streaming ist niedrige Latenz wichtig. HTTP/3 reagiert schneller auf Netzwerkwechsel und ist weniger stark durch Paketverluste beeinträchtigt.

Beispiel 3: Mobile Apps

Mobile Geräte wechseln häufig zwischen WLAN und Mobilfunk. HTTP/3 mit QUIC kann die Verbindung trotz IP-Wechsel aufrechterhalten.

Wann verwendest Du welche Version?

  • HTTP/1.1: Nur noch für ältere oder spezielle Legacy-Systeme.
  • HTTP/2: Heute der weit verbreitete Standard für Webseiten und APIs.
  • HTTP/3: Zunehmend verbreitet, besonders bei mobilen Anwendungen, Streaming und Cloud-Diensten.

HTTP/2 und HTTP/3 lösen die größten Schwächen von HTTP/1.1. HTTP/2 bietet durch Multiplexing und Header Compression deutliche Leistungsvorteile. HTTP/3 geht mit QUIC und UDP einen Schritt weiter und verbessert Verbindungsaufbau, Mobilität und Robustheit bei Paketverlusten. Für moderne Webentwicklung ist das Verständnis dieser Protokolle essenziell.

Buchempfehlungen zur Web-Entwicklung

Wenn Du Dich weiter mit Netzwerkprotokollen, Web-Performance und moderner Webentwicklung beschäftigen möchtest, empfehlen wir Dir die folgenden Bücher:

Web-Entwicklung

Bücher über React, Vue, Frontend und Backend

JavaScript: Das umfassende Handbuch. JavaScript lernen und verstehen von Philip Ackermann

JavaScript: Das umfassende Handbuch. JavaScript lernen und verstehen von Philip Ackermann

Bei Amazon ansehen

Affiliate-Link: Bei einem Kauf erhalten wir möglicherweise eine Provision.

Fullstack-Entwicklung: Das Handbuch für Webentwickler

Fullstack-Entwicklung: Das Handbuch für Webentwickler

Bei Amazon ansehen

Affiliate-Link: Bei einem Kauf erhalten wir möglicherweise eine Provision.

FAQ: HTTP/2 und HTTP/3

1. Was ist der Hauptunterschied zwischen HTTP/2 und HTTP/3?

Der Hauptunterschied liegt im Transportprotokoll. HTTP/2 nutzt TCP, HTTP/3 nutzt QUIC auf Basis von UDP. Dadurch ist HTTP/3 schneller im Verbindungsaufbau und robuster bei Netzwerkwechseln.

2. Was ist Multiplexing bei HTTP/2?

Multiplexing ermöglicht die gleichzeitige Übertragung mehrerer Anfragen und Antworten über eine einzige TCP-Verbindung. Das löst das Head-of-Line Blocking von HTTP/1.1.

3. Was ist QUIC?

QUIC ist ein von Google entwickeltes Netzwerkprotokoll, das auf UDP aufbaut. Es kombiniert Transportsteuerung, Verschlüsselung und schnellen Verbindungsaufbau in einem Protokoll.

4. Warum verwendet HTTP/3 UDP statt TCP?

UDP ist flexibler als TCP. QUIC kann auf UDP selbst Zuverlässigkeit, Reihenfolge und Flusskontrolle implementieren und ist dadurch unabhängig von den Einschränkungen von TCP.

5. Was ist HPACK?

HPACK ist das Header-Kompressionsverfahren von HTTP/2. Es speichert wiederkehrende Headerfelder in einer Tabelle und überträgt sie nur bei Änderungen erneut.

6. Was ist Server Push?

Server Push ermöglicht es dem Server, Ressourcen proaktiv an den Client zu senden, bevor dieser sie angefragt hat. Es wird in der Praxis aber selten verwendet, weil es zu übermäßigem Datentransfer führen kann.

7. Was ist Connection Migration?

Connection Migration ermöglicht es, eine QUIC-Verbindung auch bei Wechsel der IP-Adresse oder des Netzwerks aufrechtzuerhalten. Das ist besonders für mobile Geräte wichtig.

8. Was ist 0-RTT Resumption?

0-RTT Resumption ermöglicht es, bei erneutem Verbindungsaufbau sofort Daten zu senden, ohne einen neuen Handshake durchführen zu müssen. Das beschleunigt wiederkehrende Verbindungen erheblich.

9. Was ist QPACK?

QPACK ist das Header-Kompressionsverfahren von HTTP/3. Es ist ähnlich wie HPACK bei HTTP/2, wurde aber für QUIC und die Unabhängigkeit der Streams angepasst.

10. Ist HTTP/3 schneller als HTTP/2?

HTTP/3 ist in vielen Szenarien schneller, besonders bei mobilen Netzwerken, Netzwerkwechseln und hohen Paketverlusten. Der Unterschied hängt aber stark von der konkreten Infrastruktur und dem Anwendungsfall ab.

11. Was ist Head-of-Line Blocking?

Head-of-Line Blocking bedeutet, dass eine blockierte Anfrage alle nachfolgenden Anfragen verzögert. Bei HTTP/1.1 passiert dies auf Anwendungsebene, bei HTTP/2 auf TCP-Ebene und bei HTTP/3 fast nur noch auf Stream-Ebene.

12. Welche TLS-Version wird für HTTP/3 benötigt?

HTTP/3 erfordert TLS 1.3. Sicherheit ist bei HTTP/3 obligatorisch und nicht optional, wie bei HTTP/1.1 oder HTTP/2.

13. Was sind Replay-Angriffe bei 0-RTT?

Bei 0-RTT kann ein Angreifer ein verschlüsseltes Paket abfangen und später erneut senden. Deshalb sollten sensible Aktionen wie Zahlungen oder Löschvorgänge nicht im ersten 0-RTT-Paket ausgeführt werden.

14. Wann sollte ich HTTP/2 verwenden?

HTTP/2 ist heute der weit verbreitete Standard für Webseiten und APIs. Du solltest es verwenden, wenn Du moderne TLS-Konfigurationen und breite Client-Kompatibilität benötigst.

15. Wann sollte ich HTTP/3 verwenden?

HTTP/3 ist besonders sinnvoll für mobile Anwendungen, Streaming, Cloud-Dienste und Szenarien mit hohen Paketverlusten oder häufigen Netzwerkwechseln. Die Infrastrukturunterstützung wächst stetig.

Weiter im API Lernpfad

Der nächste Artikel im API Lernpfad behandelt API-Design-Prinzipien — die wichtigsten Prinzipien für gutes API-Design von Ressourcen-Struktur bis Naming Conventions.

Zurück zum DEV Blog
Share:

Ähnliche Beiträge