Wat is HTTP/2?
HTTP/2 is een belangrijke revisie van het HTTP protocol (gestandaardiseerd als RFC 7540) dat binaire framing, multiplexing, header compressie en server push introduceert om de webprestaties over HTTP/1.1. drastisch te verbeteren.HTTP/2 vs HTTP/1.1
| Functie | HTTP/1.1 | HTTP/2 |
|---|---|---|
| Formaat | Tekstgebaseerd | Binair |
| Verbindingen | Meerdere (6-8 per host) | Enkelvoudig multiplexed |
| Behandeling van verzoeken | Sequentiële | Parallelle stromen |
| Kopcompressie | Geen | HPACK compressie |
| Server push | Niet beschikbaar | Ondersteund |
| Prioriteit | Geen | Stroomprioriteiten |
Hoe werkt HTTP/2?
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
Belangrijkste kenmerken
Binaire Framing Layer
HTTP/2 Frame Structure:
┌─────────────────────────────────────┐
│ Length (24 bits) │
├─────────────────────────────────────┤
│ Type (8 bits) │ Flags (8 bits) │
├─────────────────────────────────────┤
│ Stream Identifier (32 bits) │
├─────────────────────────────────────┤
│ Frame Payload (variable) │
└─────────────────────────────────────┘
HPACK Header Compressie
| Scenario | HTTP/1.1 Headers | HTTP/2 berichtkoppen |
|---|---|---|
| Eerste verzoek | ~800 bytes | ~800 bytes |
| Latere verzoeken | ~800 bytes elk | ~20-50 bytes (geindexeerd) |
Stroomprioritering
Priority Tree:
Root (connection)
├── CSS (weight: 256, high priority)
├── JavaScript (weight: 220)
└── Images (weight: 110, lower priority)
Serververeisten
| Server | HTTP/2 ondersteuning |
|---|---|
| nginx | 1,9,5+ |
| Apache | 2.4.07+ (mod http2) |
| Node.js | 8,4+ (natief) |
| IIS | Windows 10/Server 2016+ |
Prestatievoordelen
- Verminderde latentie: Enkele verbinding elimineert TCP handshake overhead
- Betere compressie: 85-90% header verkleinen op herhaalde verzoeken
- Parallelle belasting: Alle bronnen tegelijkertijd laden
- Server push: Proactief resources versturen voordat de browser ze vraagt
Beste praktijken
1. Enable TLS: HTTP/2 vereist praktisch HTTPS (browsers handhaven het)
2. Verminder domeinharding: Meerdere domeinen schaden nu prestaties
3. Stop het samenvoegen van bestanden: Multiplexing maakt bundeling minder noodzakelijk
4. Gebruik server push zorgvuldig: Alleen kritische middelen inzetten
5. Monitor prestaties**: Verify HTTP/2 verbetert uw specifieke use case
HTTP/2 levert voor de meeste websites aanzienlijke prestatieverbeteringen door efficiënter gebruik van netwerkverbindingen.