Chapitre 2 · Leçon 1
Multiplexage, QUIC et performances web
HTTP/1.1 a 25 ans. HTTP/2 (2015) et HTTP/3 (2022) résolvent ses limitations fondamentales. Comprendre ces évolutions aide à prendre de meilleures décisions d'architecture.
snippet.typescript
1/*
2 * HTTP/1.1 — Limitations
3 * ─────────────────────────────────────────────────────────────────
4 * Head-of-Line Blocking :
5 * - 1 requête à la fois par connexion TCP
6 * - Si requête 1 est lente → requêtes 2, 3, 4 attendent
7 * - Workarounds : plusieurs connexions TCP (6 max), domain sharding
8 *
9 * Headers non compressés :
10 * - Les cookies et headers répétés à chaque requête
11 * - Peut représenter 500+ bytes par requête
12 *
13 * Pas de server push :
14 * - Le serveur ne peut qu'attendre une requête
15 * - Impossible d'envoyer proactivement des ressources
16 *
17 *
18 * HTTP/2 — Solutions
19 * ─────────────────────────────────────────────────────────────────
20 * Multiplexage :
21 * - Plusieurs requêtes en parallèle sur 1 connexion TCP
22 * - Streams numérotés, entrelacés sur la même connexion
23 *
24 * HPACK — Compression des headers :
25 * - Headers communs stockés dans une table de compression
26 * - Réduction 85-88% de la taille des headers
27 *
28 * Server Push :
29 * - Le serveur peut envoyer CSS/JS sans que le client les demande
30 * - (Rarement utilisé en pratique, remplacé par les hints)
31 *
32 * Frames binaires :
33 * - HTTP/1.1 = texte → HTTP/2 = binaire (plus efficace)
34 *
35 *
36 * HTTP/3 — QUIC (basé sur UDP)
37 * ─────────────────────────────────────────────────────────────────
38 * Problème de HTTP/2 : Head-of-Line Blocking au niveau TCP
39 * - Si 1 paquet TCP perdu → TOUS les streams attendent
40 *
41 * QUIC = UDP + fiabilité implémentée au niveau applicatif
42 * - Streams indépendants : perte d'un paquet n'affecte qu'un stream
43 * - 0-RTT pour les reconnexions (TLS intégré)
44 * - Fonctionne sur les réseaux mobiles changeants
45 *
46 * En 2024, ~30% du trafic web utilise HTTP/3 (Google, Cloudflare)
47 */Dans la config Nginx, listen 443 ssl http2 active HTTP/2. La plupart des CDN (Cloudflare, Vercel, Netlify) activent HTTP/3 automatiquement. Vérifie avec curl -I --http2 https://ton-site.com.
HTTP/1.1 reste le standard de base, HTTP/2 est incontournable pour la performance, HTTP/3 est l'avenir pour les réseaux mobiles. Pour un développeur, maîtriser les méthodes, codes de statut, headers de cache et CORS couvre 95% des besoins quotidiens.