Cette chronologie présente les RFC structurantes du protocole. Elle ne cherche pas à répertorier chaque extension spécialisée.
Les premières versions du Web
HTTP passe d’un protocole minimal à un protocole généraliste capable de gérer les hôtes virtuels, les caches et les connexions persistantes.
RFC 1945
Hypertext Transfer Protocol -- HTTP/1.0
Formalise les pratiques du Web naissant : requêtes simples, en-têtes, codes d’état et types de contenu. Le document décrit HTTP/1.0 sans en faire une norme Internet.
Consulter le texte officielRFC 2068
Hypertext Transfer Protocol -- HTTP/1.1
Introduit HTTP/1.1 avec les connexions persistantes, l’en-tête Host, le transfert par blocs, une meilleure gestion des caches et de nouvelles méthodes. Cette première spécification est rapidement corrigée.
Consulter le texte officielRFC 2616
Hypertext Transfer Protocol -- HTTP/1.1
Consolide HTTP/1.1 et devient la référence pendant quinze ans. Sa taille et plusieurs ambiguïtés d’interprétation conduiront à le remplacer par une série de documents spécialisés.
Consulter le texte officiel
HTTP/1.1 découpé par responsabilité
En 2014, la spécification monolithique est remplacée par six RFC plus faciles à maintenir et à appliquer.
RFC 7230
HTTP/1.1: Message Syntax and Routing
Isole la syntaxe des messages, leur cadrage, les connexions et le routage. Elle durcit aussi l’analyse des messages afin de réduire les divergences à l’origine d’attaques de type request smuggling.
Consulter le texte officielRFC 7231
HTTP/1.1: Semantics and Content
Redéfinit les méthodes, codes d’état, représentations et mécanismes de négociation de contenu indépendamment des détails de transport.
Consulter le texte officielRFC 7232
HTTP/1.1: Conditional Requests
Regroupe les validateurs ETag et Last-Modified ainsi que les en-têtes If-Match, If-None-Match et apparentés pour éviter les transferts inutiles et prévenir les mises à jour concurrentes.
Consulter le texte officielRFC 7233
HTTP/1.1: Range Requests
Normalise les requêtes partielles, les réponses 206 et le type multipart/byteranges, utiles pour la reprise de téléchargement et la diffusion de médias.
Consulter le texte officielRFC 7234
HTTP/1.1: Caching
Clarifie quand une réponse peut être stockée ou réutilisée, le calcul de fraîcheur et les directives Cache-Control.
Consulter le texte officielRFC 7235
HTTP/1.1: Authentication
Extrait le cadre générique de défi-réponse HTTP utilisé par les schémas d’authentification et distingue l’authentification du serveur d’origine de celle des mandataires.
Consulter le texte officiel
Multiplexage et nouvelle génération
HTTP conserve ses sémantiques mais change profondément la façon dont les messages circulent sur le réseau.
RFC 7540
Hypertext Transfer Protocol Version 2 (HTTP/2)
Ajoute un cadrage binaire, le multiplexage de plusieurs flux sur une connexion, la compression des en-têtes et la priorisation. Les méthodes et codes d’état de HTTP restent inchangés.
Consulter le texte officielRFC 9110
HTTP Semantics
Réunit les concepts communs à toutes les versions : méthodes, codes d’état, champs, authentification, URI, contenu et requêtes conditionnelles. Elle remplace l’essentiel de la série 723x consacrée aux sémantiques.
Consulter le texte officielRFC 9111
HTTP Caching
Actualise le modèle de cache pour toutes les versions de HTTP, clarifie la réutilisation des réponses et consolide les directives de contrôle de cache.
Consulter le texte officielRFC 9112
HTTP/1.1
Conserve uniquement la syntaxe textuelle et la gestion des connexions propres à HTTP/1.1. Les règles communes sont désormais dans la RFC 9110.
Consulter le texte officielRFC 9113
HTTP/2
Remplace la RFC 7540, intègre les retours d’expérience de déploiement et précise le contrôle des flux, les erreurs, la priorité et la sécurité du protocole.
Consulter le texte officielRFC 9114
HTTP/3
Transpose HTTP sur QUIC : les flux indépendants réduisent le blocage entre requêtes, tandis que la sécurité TLS 1.3 et la gestion de connexion sont intégrées au transport QUIC.
Consulter le texte officiel
Lecture de l’évolution
HTTP évolue désormais en séparant les règles communes du protocole de leur transport. Une même sémantique de requêtes, réponses, méthodes et codes d’état peut ainsi fonctionner sur HTTP/1.1, HTTP/2 ou HTTP/3.