Builders Academy
HTTP en Profondeur — Le Protocole du Web
3 of 3

Chapitre 2 · Leçon 1

HTTP/2 & HTTP/3

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.

Problèmes de HTTP/1.1 et solutions

snippet.typescript

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 */
HTTP/2 activé automatiquement avec Nginx + HTTPS

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 — résumé

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.

Topics and skills covered

  • HTTP/2
  • HTTP/3
  • QUIC
  • Multiplexage
  • Performance