Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Laurent COCAULT

Je suis une théière

Je suis une théière

Nul besoin d'être informaticien ou accroc du Web pour avoir rencontré la trop fameuse erreur 404 accompagné du texte "Page introuvable" ou "Page not found". En revanche, en dehors des informaticiens, peu de personnes ont connaissance de l'origine de ce code ni même de l'existence d'autres codes plus ou moins fréquents. Même parmi les informaticiens, la connaissance des codes de retour HTTP se résume au 404, au 200, éventuellement au 401 et au 403... Et ça s'arrête là. Prenons donc quelques instants pour revenir à la source et consulter la liste des codes HTTP les plus classiques; pour ce faire, nous pourrions consulter la RFC (Request For Comments) de l'IETF (Internet Engineering Task Force) qui les a spécifiés pour la première fois: https://tools.ietf.org/html/rfc2616. Mais il sera certainement plus facile de simplement consulter la page Wikipédia qui les recense (non seulement parce qu'on pourra trouver une traduction française mais également pour éviter de devoir balayer la RFC à la recherche des codes).

Commençons par une histoire qui se termine bien: le code 200. Lorsque vous accédez à la page d'un site, que son contenu soit statique (disponible sous la forme d'un fichier hébergé par le site) ou dynamique (calculé par un algorithme de rendu), la réponse du site est accompagné d'un code 200 lorsque la réponse est nominale. Si vous voulez vous en assurer, appuyez sur la touche F12 depuis votre navigateur préféré et sélectionner l'onglet Réseau (ou Network pour les navigateurs anglais). Puis entrez l'adresse d'un site bien connu (par exemple www.google.fr). Vous verrez alors apparaître une liste de requêtes HTTP émises vers le site et qui vont progressivement afficher un état "200" lorsque la ressource associée (page, image, script...) a été récupérée avec succès.

Essayons maintenant l'adresse "www.google.fr/toto", adresse correspondant à une ressource que le site Google aura du mal à nous fournir. On voit ainsi la requête émise vers le site se terminer par un code 404 et la page affichée par le site du géant de Mountain View présenter un texte et une image informant que la page demande ne peut être trouvée, page mentionnant le célèbre code 404.

Essayons maintenant d'aller sur le site d'un autre géant: Netflix. La première requête émise vers le site www.netflix.com retourne un code 301 et la seconde un code 302. Ces codes correspondent à une redirection vers la page d'accueil française du site, le site ayant détecté notre localisation en France.

La liste des codes est assez longue et plutôt que la parcourir exhaustivement, nous pourrons signaler:

- Le code 401 qui est émis lorsqu'on tente d'accéder à une ressource nécessitant certains privilèges sans authentification préalable.

- Le code 403 qui est émis lorsqu'on tente d'accéder à une ressource privée.

- Le code 500 que les développeurs Web connaissent trop bien puisqu'il est émis par le serveur en cas d'erreur applicative.

Ce qu'il est intéressant de noter, c'est que la classification des codes se fait par centaines: les code 1xx correspondent à des codes d'information, les 2xx (dont le code 200 évoqué précédemment) indiquent un succès de la requête, les 3xx précisent que le site a opéré une redirection du navigateur vers une autre ressource, les 4xx indiquent au client qu'il a commis une erreur (mauvaise adresse, ressource introuvable, droits insuffisants...) et les 5xx correspondent aux erreurs du serveur.

Si vous avez la curiosité de balayer la liste des code recensés dans la page Wikipédia, votre regard se posera peut-être avec la même circonspection qui a été la mienne lorsque j'ai lu le descriptif du code "418 - I am a teapot", autrement dit, je suis une théière. On peut légitimement se demander pourquoi un site Web répondrait qu'il est une théière et en quoi nous avons fait une erreur en le sollicitant.

Ce code HTTP a été spécifié dans une RFC bien particulière: la RFC 2324 décrivant le protocole HTCPCP, acronyme dont la signification est Hyper Text Coffee Pot Control Protocol qu'on pourrait traduire par "Protocole de contrôle hypertexte pour cafetière". Bien évidemment ce protocole est une pure plaisanterie; la RFC a été émise le 1er avril 1998 et reprend les conventions d'écriture des protocoles majeurs d'Internet, en particulier le protocole HTTP dont il est une extension.

Naturellement peu de logiciels gèrent cette extension du protocole HTTP. On peut néanmoins trouver quelques références sur le Web. Par exemple, la page http://www.google.com/teapot/ affiche un code 418. Et si vous tentez d'accéder à cette adresse alors que votre "debugger" (touche F12) est toujours actif, vous pourrez constater que le site Google retourne bel et bien un code 418. Mais mon navigateur Firefox n'affiche rien de plus que le code et la page prévue par Google; ce comportement fait d'ailleurs l'objet d'une entrée dans la base de "bugs" de Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1057206. L'auteur du bug se plaint du comportement observé lorsqu'on clique sur la cafetière affichée par Google. L'animation proposée ne se comporte en effet pas de la même façon sur Firefox et sur Chrome (https://bug1057206.bmoattachments.org/attachment.cgi?id=8477199).

L'absence de prise en charge du code suggère-t-elle que la communauté libre a moins d'humour que les jeunes geeks de chez Google ? Pour en avoir le coeur net, allons voir comment sont traités les retours HTTP au niveau du géant libre dans le domaine des serveurs Web: le célèbre et historique serveur Apache. Une recherche rapide dans la base de code source du serveur, on trouve une constate définissant le code dans le fichier https://svn.apache.org/viewvc/httpd/httpd/trunk/include/httpd.h?view=markup à la ligne 526:

525 #define HTTP_EXPECTATION_FAILED 417
526 #define HTTP_IM_A_TEAPOT 418
527 #define HTTP_MISDIRECTED_REQUEST 421
 

Ouf, l'honneur des libristes est sauf. Ceci dit, il y a fort à parier que le serveur ne répond jamais avec ce code puisque les constantes définissant les méthodes BREW et WHEN sont commentées.

Quoiqu'il en soit, même si cet article apporte certainement des informations d'une importance vitale pour continuer à utiliser le Web dans de bonnes conditions, il ne répond pas à la question cruciale qui occupe les pensées d'une profession toute entière: pourquoi le café obsède-t-il les informaticiens à ce point ?

Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article