21 - Glossaire HTTP de A a Z
Ce que tu vas apprendre
- Les définitions concises de ~45 termes HTTP
- Les liens entre les concepts
- Une référencé rapide a garder sous la main
Prerequisites
- 20 - Debugger HTTP
- Avoir lu au moins quelques articles de la serie
Voila. Dernier article de la serie. Pas de grande theorie ici, juste un glossaire que tu pourras consulter quand tu tomberas sur un terme que tu as oublie. J'ai essaye de garder chaque définition courte, avec un renvoi vers l'article de la serie quand c'est pertinent. Si tu cherches un terme et qu'il n'y est pas, c'est que j'ai oublie. Ca arrive.
Accept
Header de requête qui indique au serveur quels types de contenu le client préféré. Accept: application/json dit "je veux du JSON". Le serveur peut répondre avec un type différent si celui demande n'est pas disponible. Fait partie de la negociation de contenu.
ACME
Automatic Certificate Management Environment. Le protocole utilise par Let's Encrypt pour emettre et renouveler des certificats TLS automatiquement. Caddy l'utilise en interne pour gerer les certificats sans intervention humaine.
Basic auth
Schema d'authentification HTTP ou le client envoie Authorization: Basic base64(user:password). Le mot de passe est encode en base64, pas chiffre. Sans HTTPS, c'est envoye en clair. Simple mais limite : pas de deconnexion propre, pas de gestion de session.
Bearer token
Schema d'authentification ou le client envoie Authorization: Bearer <token>. Le token est souvent un JWT. Le serveur le valide sans avoir besoin de consulter une base de sessions. Utilise massivement dans les APIs REST.
Brotli
Algorithme de compression développé par Google. Plus efficace que gzip pour le texte web (HTML, CSS, JS). Identifie par Content-Encoding: br. Supporte par tous les navigateurs modernes. Le header Accept-Encoding: br indique que le client le supporte.
Cache-Control
Header qui definit la politique de cache. Cote réponse : max-age=3600 (cache 1h), no-cache (revalider a chaque fois), no-store (ne jamais cacher), public/private. Cote requête : no-cache (ignore le cache local). Le header le plus complexe et le plus mal compris de HTTP.
Certificat TLS
Fichier qui prouve l'identité d'un serveur. Contient la clé publique du serveur et est signe par une autorite de certification (CA). Le navigateur vérifié la chaîne de certificats lors du handshake TLS. Let's Encrypt en delivre gratuitement.
Chunked transfer encoding
Mecanisme qui permet d'envoyer une réponse par morceaux sans connaître la taille totale a l'avance. Chaque chunk est precede de sa taille en hexadecimal. Un chunk de taille 0 signale la fin. Identifie par Transfer-Encoding: chunked. Obsolete en HTTP/2 (le framing binaire gere ca nativement).
CONNECT
Méthode HTTP utilisee pour etablir un tunnel TCP à travers un proxy. Typiquement utilisee pour le HTTPS à travers un forward proxy : le client demande CONNECT example.com:443, le proxy ouvre la connexion et relaie les octets sans les lire.
Content negotiation
Mecanisme par lequel le client et le serveur se mettent d'accord sur le format de la réponse. Le client envoie Accept, Accept-Language, Accept-Encoding. Le serveur choisit la meilleure correspondance et peut indiquer les variantes via le header Vary.
Cookie
Petit bout de donnee envoye par le serveur (Set-Cookie) et renvoye automatiquement par le navigateur a chaque requête vers le meme domaine (Cookie). Attributs : Secure (HTTPS uniquement), HttpOnly (pas d'acces JavaScript), SameSite (protection CSRF), Path, Domain, Expires/Max-Age.
CORS
Cross-Origin Resource Sharing. Mecanisme qui permet a un serveur d'autoriser des requêtes depuis un autre domaine. Le navigateur envoie un header Origin, le serveur répond avec Access-Control-Allow-Origin. Les requêtes "non simples" declenchent un preflight OPTIONS. La source de beaucoup de frustration chez les devs.
CSP
Content-Security-Policy. Header de réponse qui contrôle d'ou les ressources (scripts, styles, images) peuvent etre chargees. Protection majeure contre les XSS. Voir article 19.
DNS
Domain Name System. Traduit un nom de domaine (example.com) en adresse IP (93.184.216.34). La résolution DNS est le premier pas de toute requête HTTP. Impacte la latence, surtout sur mobile. Le prefetching DNS (dns-prefetch) peut aider.
ETag
Entity Tag. Header de réponse qui identifié une version spécifique d'une ressource. Le client renvoie If-None-Match: "etag-value" lors des requêtes suivantes. Si la ressource n'a pas change, le serveur répond 304 Not Modified sans body. Economie de bande passante.
Forward proxy
Proxy cote client. Le client sait qu'il passe par le proxy. Utilise pour filtrer le trafic sortant (en entreprise), anonymiser l'IP, ou cacher des ressources. Voir article 15.
Gzip
Algorithme de compression largement utilise pour les réponses HTTP. Identifie par Content-Encoding: gzip. Moins efficace que brotli mais supporte partout. Le client annonce le support avec Accept-Encoding: gzip.
HPACK
Algorithme de compression des headers spécifique a HTTP/2. Utilise une table statique (61 headers predefinis), une table dynamique (headers deja vus) et un codage de Huffman. Reduit les headers de 80 a 90%. Voir article 16.
HSTS
HTTP Strict Transport Security. Header qui force le navigateur a utiliser HTTPS pendant une duree définie. Strict-Transport-Security: max-age=63072000; includeSubDomains; preload. La preload list inclut le domaine dans le code source des navigateurs. Voir article 19.
HTTP/2
Version majeure de HTTP introduite en 2015. Framing binaire, multiplexage de streams sur une seule connexion TCP, compression HPACK, server push (déprécié). Resout le head-of-line blocking au niveau HTTP mais pas au niveau TCP. Voir article 16.
HTTP/3
Version de HTTP basee sur QUIC au lieu de TCP. Resout le head-of-line blocking TCP grace au multiplexage au niveau transport. TLS 1.3 intégré, 0-RTT, migration de connexion. ~30% du trafic web en 2026. Voir article 17.
Idempotent
Une méthode HTTP est idempotente si appeler la requête une fois ou plusieurs fois produit le meme résultat. GET, PUT, DELETE sont idempotents. POST ne l'est pas. L'idempotence permet les retries automatiques en cas d'erreur réseau sans risque de dupliquer une action.
Location
Header de réponse utilise avec les codes 3xx pour indiquer l'URL de redirection. 301 + Location: /nouvelle-url redirige le client. Aussi present dans les réponses 201 Created pour indiquer l'URL de la ressource créée.
Mixed content
Quand une page HTTPS charge des ressources en HTTP (images, scripts, iframes). Les navigateurs modernes bloquent le mixed content actif (scripts, iframes) et affichent des avertissements pour le mixed content passif (images). Solution : tout passer en HTTPS.
Multiplexage
Technique qui permet d'envoyer plusieurs requêtes et réponses en parallèle sur une seule connexion. En HTTP/2, au niveau des streams HTTP. En HTTP/3/QUIC, au niveau du transport. Elimine le besoin d'ouvrir plusieurs connexions TCP.
OPTIONS
Méthode HTTP utilisee pour le preflight CORS et pour découvrir les méthodes supportees par un endpoint. Le navigateur envoie automatiquement un OPTIONS avant certaines requêtes cross-origin. Le serveur répond avec Access-Control-Allow-Methods et Access-Control-Allow-Headers.
Origin
L'origine d'une requête : schema + domaine + port. https://example.com:443. Deux pages ont la meme origine si ces trois éléments sont identiques. La same-origin policy du navigateur restreint les interactions entre origines différentes. CORS relache ces restrictions de manière contrôlée.
Preflight
Requete OPTIONS automatiquement envoyee par le navigateur avant une requête cross-origin "non simple" (méthode autre que GET/POST, headers custom, Content-Type autre que les trois basiques). Le serveur doit répondre avec les headers CORS autorisant la requête réelle.
Proxy
Intermediaire entre un client et un serveur. Forward proxy (cote client) ou reverse proxy (cote serveur). Voir article 15.
QUIC
Quick UDP Internet Connections. Protocole de transport base sur UDP, développé par Google et standardise par l'IETF (RFC 9000). Inclut TLS 1.3, le multiplexage natif de streams, le 0-RTT et la migration de connexion. Sert de transport a HTTP/3. Voir article 17.
Redirect
Réponse HTTP avec un code 3xx et un header Location qui demande au client d'aller a une autre URL. 301 (permanent), 302 (temporaire, historique), 307 (temporaire, meme méthode), 308 (permanent, meme méthode).
Reverse proxy
Proxy cote serveur. Le client ne sait pas qu'il existe. Gere le load balancing, la terminaison SSL, la compression, le cache. Caddy, Nginx, HAProxy, AWS ALB. Voir article 15.
Safe method
Une méthode HTTP est "safe" si elle ne modifie pas l'état du serveur. GET et HEAD sont safe. POST, PUT, DELETE ne le sont pas. Les navigateurs peuvent prefetcher des liens GET sans risque grâce à cette propriété.
SameSite
Attribut du cookie qui contrôle l'envoi du cookie dans les requêtes cross-origin. Strict : jamais en cross-origin. Lax : seulement pour les navigations (liens, pas AJAX). None : toujours (requiert Secure). Protection contre les attaques CSRF. Sur paltemps.fr, les cookies de session utilisent SameSite=Lax.
SNI
Server Name Indication. Extension TLS qui permet au client d'indiquer quel domaine il veut atteindre pendant le handshake TLS. Indispensable pour l'hébergement de plusieurs sites HTTPS sur une meme IP. Sans SNI, le serveur ne sait pas quel certificat presenter avant que la connexion soit chiffree.
SSL
Secure Sockets Layer. Ancien nom du protocole de chiffrement, remplace par TLS. SSL 2.0 et 3.0 sont deprecated et vulnerables. Quand quelqu'un dit "SSL" aujourd'hui, il parle généralement de TLS. Le terme persiste par habitude (certificat SSL, terminaison SSL).
Status code
Code numérique a 3 chiffres dans la réponse HTTP. 1xx : informatif. 2xx : succes. 3xx : redirection. 4xx : erreur client. 5xx : erreur serveur. Les plus courants : 200, 201, 204, 301, 302, 304, 400, 401, 403, 404, 500, 502, 503.
Stream
En HTTP/2 et HTTP/3, un flux logique bidirectionnel a l'intérieur d'une connexion. Chaque requête-réponse utilise un stream distinct. Les streams sont multiplexes et peuvent etre priorises. Un stream peut etre annule (RST_STREAM) sans affecter les autres.
TLS
Transport Layer Security. Protocole de chiffrement qui sécurisé les communications HTTP (HTTPS). TLS 1.3 (2018) simplifie le handshake a 1 RTT, retire les cipher suites obsolètes et est intégré nativement dans QUIC. TLS 1.0 et 1.1 sont deprecated.
Upgrade
Header de requête utilise pour changer de protocole sur une connexion existante. Utilise par WebSocket (Upgrade: websocket) et historiquement pour passer de HTTP/1.1 a HTTP/2 (h2c). Le serveur répond 101 Switching Protocols si l'upgrade est accepte. Voir article 18.
Vary
Header de réponse qui indique aux caches quels headers de requête influencent la réponse. Vary: Accept-Encoding signifie que la réponse gzippee et la réponse non compressoe sont des variantes différentes. Vary: Origin est critique pour le cache des réponses CORS.
WebSocket
Protocole full-duplex au-dessus de TCP, initie par un upgrade HTTP. Permet la communication bidirectionnelle en temps réel. Utilise pour le chat, les jeux, la collaboration, le streaming de donnees. Voir article 18.
X-Forwarded-For
Header non standard (mais universel) ajoute par les proxies pour transmettre l'IP originale du client. Chaque proxy ajoute l'IP du hop précédent. Format : X-Forwarded-For: client, proxy1, proxy2. Ne pas faire confiance aveuglément : le header peut etre forge par le client. Voir article 15.
Résumé
Ce glossaire couvre les termes que tu rencontreras le plus souvent en travaillant avec HTTP. Garde-le en favori. Quand tu tombes sur un Vary mysterieux ou un preflight qui t'enerve, la définition est la. Et si tu veux creuser un sujet, les renvois vers les articles de la serie sont la pour ca.
La serie "HTTP en profondeur" est terminee. Tu as maintenant les bases solides pour comprendre ce qui se passe entre ton navigateur et un serveur. Le protocole evolue (HTTP/3, QUIC, WebTransport arrive), mais les fondamentaux que tu as appris ici resteront valables longtemps.
Article précédent : 20 - Debugger HTTP