Première rédaction de cet article le 14 juin 2014
Dernière mise à jour le 17 juin 2014
La norme HTTP est actuellement en version 1.1. Cette version était normalisée dans le RFC 2616, un document unique couvrant tous les aspects de HTTP. Ce protocole étant largement utilisé, dans des contextes très différents, des problèmes, voire des bogues dans la spécification sont apparus. Son côté monolithique rendait difficile une évolution. HTTP 1.1 est donc désormais normalisé dans huit RFC différents qui, tous ensemble, remplacent le RFC 2616. (Ils ont depuis été à leur tour remplacés par la série qui comprend notamment les RFC 9110 et RFC 9112.)
Cela a été une des deux tâches du groupe de travail httpbis de l'IETF, l'autre étant de développer la version 2 de HTTP (publiée depuis, dans le RFC 7540).
HTTP a eu plusieurs versions. La première, souvent nommée (après coup) 0.9, n'a pas fait l'objet d'une normalisation formelle. Le premier RFC spécifiant HTTP a été le RFC 1945 en 1996, remplacé ensuite par le RFC 2068 (qui a introduit la version 1.1) puis le RFC 2616. Le RFC 2145 décrit les versions de HTTP et comment les interpréter. À noter que cette dernière révision modifie aussi les RFC 2817 et RFC 2818 sur HTTPS.
La liste des questions ouvertes par le processus de révision était longue : voici celle maintenue par le W3C et celle de l'IETF. Le grand débat était le classique « Faut-il écrire un document en partant de zéro ou bien se contenter de corriger les erreurs les plus évidentes du RFC ? » et le choix a été de refaire les documents mais de garder le protocole.
La liste complète des RFC décrivant HTTP 1.1 est désormais :
La sortie de cette nouvelle norme a aussi permis la publication
d'extensions à HTTP qui en dépendaient, comme le code de retour 308
dans le RFC 7238, comme l'en-tête
Forwarded:
dans le RFC 7239 ou encore comme l'en-tête Prefer:
du RFC 7240.
Les changements ? Le protocole ne change pas, c'est toujours HTTP 1.1. Les changements sont de forme, de précision, de correction de bogues dans la spécification. Parmi les changements transversaux, qui affectent l'ensemble des huit RFC, le passage à l'ABNF standard du RFC 5234, au lieu d'un langage de description de grammaire spécifique à HTTP. La révision de HTTP a été un énorme travail, vu la nécessité de rester compatible avec le comportement de tous les logiciels existants, tout en étant plus rigoureux.
Un bon article résumant le projet est celui de Mark Nottingham, un des présidents du groupe de travail httpbis. (Il y a aussi celui d'Evert Pot.)
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)