Pseudo-Weblog


HTTP, partie 4.

Je vais éviter de mettre la grammaire de HTTP, mais en la regardant de près, on peut avoir des surprises, commme ma récente decouverte des blancs implicites, en général omise par les serveurs, qui ne sont plus en accord avec la norme. Cependant, il est à noter que les en-têtes sont encodés selon la norme iso-8859-1. Il peut être fait usage d'autres encodages, comme UTF-8, en suivant les règles définies dans la RFC 2047.

Je reviendrai plus tard sur des exemples volontairement tordus (mais valides!) d'en-têtes HTTP. En attendant, regardont les URIs utilisées dans le cadre d'HTTP. Elles sont définies par la RFC 2396, et peuvent être absolues (ex: http://www.example.com/foo/bar), ou relatives (ex: ../toto/titi/tata.txt). Une URI relative se transforme en URI absolue grâce à son contexte, qui est une URI absolue. En utilisant les exemples précédents, on obtient http://www.example.com/toto/titi/tata.txt, le ../ transformant http://www.example.com/foo/ en http://www.example.com/. Un conteneur étant identifié par le / final.

Il est aussi possible d'érire de plusieurs manière une URI, et il y a donc des règles pour s'assurer de l'égalité de deux URIs. C'est une comparaison octet à octet, avec quelques exceptions:

La majorité des abus dans les URIs sont dûs à cette variabilité dans l'ecriture, dont le célébrissime ../../ remplacé par ..%2F.. utilisé pour récuperer des fichiers sous la racine du serveur (heureusement, plus aucun serveur n'autorise cela).

à suivre...


(c) 2003 Yves Lafon
Last edited: $Date: 2009-07-22 19:57:05 $