Extrait de l'émission CPU release Ex0213 : Disséquons une URL, première partie.
Dans une URL, une fois passée l'autorité et que donc nous savons à quel serveur parler et comment, nous trouvons le path, le chemin, la question du où c'est que c'est sur le serveur
; la position dans l'arborescence de sous-répertoires et le nom de fichier. Le path est défini depuis un premier /
qui symbolise la racine de cette arborescence exposée.
Alors attention : l'arborescence n'est peut-être pas réelle, totalement fantasmée par rapport à l'arborescence réelle à l'intérieur du serveur. Le serveur vous la présente conventionnellement pour que tout le monde parle le même langage et utilise à peu près les mêmes concepts.
Là encore, l'écriture d'une URL a un élément de définition qui a une grosse tolérance : le séparateur entre sous-répertoires n'a jamais été standardisé parce que quasiment chaque éditeur de système d'exploitation l'a fait à sa sauce jusqu'aux années 2000s.
Dans les années 1990s, le monde des PC et leur MS-Dos utilisait des \
, les Macintosh utilisaient des :
, et le monde Unix/BSD et le naissant Linux utilisaient des /
. Mais comme les URL sont surtout apparues sur des serveurs Unix et que dans les URL, on commence le chemin par un /
, ben… même Microsoft s'est senti obligé de basculer son \
qu'il était quasiment le seul à utiliser. Oui, j'avais vu des adresses web pleines de \
, c'était assez rigolo de deviner la technologie derrière.
C'était y'a 25 ans, depuis, y'a prescription.
Et c'est pas la seule étrangeté qu'on peut trouver dans le path d'une URL : Dans le chemin, chaque sous-répertoire peut avoir des paramètres.
Si si.
Vous mettez un /
, le nom du répertoire, un séparateur, des paramètres, puis un /
et le nom d'un sous-répertoire enfant.
Le séparateur est en général une ,
ou un ;
. Comme dans /media;deplie=oui/images/blanc.gif
, alors que tu devines que le chemin devrait être /media/images/blanc.gif
. Donc le répertoire media dans notre exemple, reçoit le paramètre deplie=oui
…
Oui… je sais… je vous laisse digérer cette information.
La première fois, moi aussi, cela m'a franchement fait bizarre. Pourquoi peut-on avoir besoin d'associer un paramètre à un sous-répertoire ?
Dans les années 1990s, cette idée a été introduite pour des raisons de rendus dans une page web. À cette époque-là, on était très féru des arborescences dépliables dans les explorateurs de fichiers, donc beaucoup de gens ont considéré que, quitte à présenter une vue d'arborescence de fichiers dans un navigateur web, autant la rendre dépliable, comme sur le bureau de son ordinateur.
Donc si je reprends mon exemple /media;deplie=oui/images/blanc.gif
, l'URL indique au serveur web d'afficher le répertoire media
comme déplié.
Bon, maintenant, on a d'autres solutions, vous n'avez aucune raison de retomber dessus.
D'une manière très étrange, j'ai eu le cas de paramètres dans un répertoire sur un serveur FTP d'une très grande entreprise…
Outre que j'ai trouvé sa présence incongrue dans un FTP, le paramètre était cryptique et je n'en voyais pas vraiment l'intérêt… jusqu'à ce que je comprenne que le serveur FTP en question était un logiciel maison, développé en interne, que l'identifiant utilisateur/mot de passe n'était qu'une mascarade, que le développeur de ce serveur n'arrivait pas à retenir qui j'étais, sinon en cachant un identifiant unique dans l'URL en espérant que les visiteurs ne se rendent pas compte que tous les utilisateurs de son service étaient en mode anonyme.
Si si, une merveille d'ingéniosité de ce qu'il ne faut jamais faire.
À ce stade, ce développeur aurait dû se concentrer sur le métier de son employeur plutôt que réinventer la roue carrée.
Ahem. Revenons sur le chemin d'une URL.
[Suite : Standard : Le nom de fichier dans une URL]
Texte : Da Scritch
Corrections et nombreux conseils : Stéphane Bortzmeyer
Illustration : Arborescence du serveur de CPU, vu dans un explorateur de fichier en mode arboré. CC-By DaScritch