samedi 12 février 2005
Encodage des URL avec Domino : bien, mais pas top
J'en parlais il y a deux billets, encoder ses URL est important, encore faudrait-il que le moteur HTTP de Domino les décode correctement..
Prenons l'exemple d'un fichier qui s'appelerait test%20plop.jpg, que nous collerions directement dans le répertoire data\domino\html histoire de ne pas s'encombrer avec des bases, pièces jointes, et tout le tralala (Mm, my ding ding dong.... ok, désolé).
Une première fois, on tente d'y accéder via l'URL http://domino/test%20plop.jpg ; Domino nous retourne une erreur 404, ce qui est tout à fait normal, puisqu'en réalité celui-ci va chercher un fichier s'appelant test plop.jpg (pour rappel, le code %20 représente l'espace), et en l'occurence, un tel fichier n'existe pas.
On tente une seconde fois, cette fois-ci en encodant l'URL : le % devient donc %25, ce qui nous donnel l'URL suivante : http://domino/test%2520plop.jpg. En toute logique, Domino devrait nous afficher l'image, le fichier recherché étant bien test%20plop.jpg. Et bien non, au lieu de ça, il nous retourne une belle erreur 400 "Http request contains a malformed escape sequence". Pourtant, un test identique avec Apache 1.3 nous retourne bien l'image. J'imagine que le moteur HTTP de Domino cherche à décoder %2520 au lieu de décoder %25, ce qui effectivement ne doit pas amener à grand chose. Ca sent la regexp mal formulée à plein nez.
La solution ? Et bien, à part éviter d'avoir le caractère % dans les noms des ressources et des fichiers, je ne vois pas vraiment ce qu'on peut faire d'autre..
samedi 12 février 2005 à 11:39 :: Lotus Notes / Domino :: 9 commentaires