Was ist HTTP/2?
HTTP/2 ist eine große Revision des HTTP-Protokolls (standardisiert als RFC 7540), das Binär-Framing, Multiplexing, Header Kompression und Server-Push einführt, um die Web-Performance über HTTP/1.1 drastisch zu verbessern.HTTP/2 vs HTTP/1.1
| Merkmal | HTTP/1.1 | HTTP/2 |
|---|---|---|
| Format | Textbasiert | Binär |
| Verbindungen | Mehrere (6-8 pro Host) | Einzelmultiplex |
| Fragen zum Umgang | Folge | Parallele Ströme |
| Header Kompression | Keine | HPACK Kompression |
| Server Push | Nicht verfügbar | Unterstützt |
| Priorität | Keine | Prioritäten |
Wie HTTP/2 funktioniert
HTTP/1.1 (Head-of-Line Blocking):
Connection 1: Request A ──────────► Response A
Connection 2: Request B ──────────► Response B
Connection 3: Request C ──────────► Response C
(Multiple connections, sequential per connection)
HTTP/2 (Multiplexing):
Single Connection:
├── Stream 1: Request A ──► Response A
├── Stream 2: Request B ──► Response B
├── Stream 3: Request C ──► Response C
└── All interleaved on same connection
Schlüsselmerkmale
Binary Framing Layer
HTTP/2 Frame Structure:
┌─────────────────────────────────────┐
│ Length (24 bits) │
├─────────────────────────────────────┤
│ Type (8 bits) │ Flags (8 bits) │
├─────────────────────────────────────┤
│ Stream Identifier (32 bits) │
├─────────────────────────────────────┤
│ Frame Payload (variable) │
└─────────────────────────────────────┘
HPACK Header Kompression
| Szenario | HTTP/1.1 Header | HTTP/2 Heads |
|---|---|---|
| Erste Anfrage | ~800 bytes | ~800 bytes |
| Folgeanträge | ~800 bytes every | ~20-50 bytes (indexiert) |
Optimierung der Priorität
Priority Tree:
Root (connection)
├── CSS (weight: 256, high priority)
├── JavaScript (weight: 220)
└── Images (weight: 110, lower priority)
Anforderungen an die Server
| Server | HTTP/2 Unterstützung |
|---|---|
| Nginx | 1.9.5+ |
| Apache | 2.4.17+ (mod http2) |
| Node | 8.4+ (nativ) |
| IIS | Windows 10/Server 2016+ |
Leistungen
- ** Reduzierte Latenz*: Single-Verbindung eliminiert TCP Handshake Overhead
- Bessere Komprimierung: 85-90% Header-Größe-Reduktion auf Wiederholanfragen
- Parallellade: Alle Ressourcen laden gleichzeitig
- Server Push: Senden Sie aktiv Ressourcen, bevor der Browser sie anfordert
Bewährte Praktiken
1. Enable TLS: HTTP/2 benötigt praktisch HTTPS (Browser erzwingen es).
2. **Reduce Domainsharding*: Mehrere Domains verletzen jetzt die Leistung
3. **Stop-Konzentrationsdateien*: Multiplexing macht Bündelung weniger notwendig
4. **Benutzen Sie den Server vorsichtig*: Nur kritische Ressourcen drücken
5. **Monitor-Leistung*: Verify HTTP/2 verbessert Ihren spezifischen Anwendungsfall
HTTP/2 liefert signifikante Leistungsverbesserungen für die meisten Webseiten durch eine effizientere Nutzung von Netzwerkverbindungen.