HTTP en profondeur - 21 - Glossaire HTTP de A a Z

Glossaire alphabetique de ~45 termes HTTP essentiels : de Accept a X-Forwarded-For.

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


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.

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

Sources

Réservez un audit gratuit de 30 minutes. Je vous montre concrètement ce qu'on peut automatiser.