Pourquoi l'URL ne serait-il pas sensible à la casse?
Je comprends que cela puisse ressembler à un type de question rhétorique de type provocateur (et "avocat du diable"), mais je pense qu’il est utile de l’envisager. La conception de HTTP est telle qu'un "client", que nous appelons communément un "navigateur Web", demande des données au "serveur Web".
De nombreux serveurs Web différents sont disponibles. Microsoft a publié IIS avec les systèmes d'exploitation Windows Server (et d'autres, y compris Windows XP Professionnel). Unix a des poids lourds comme nginx et Apache, sans parler des offres plus petites comme le httpd interne, ou thttpd, ou lighttpd d'OpenBSD. De plus, de nombreux périphériques réseau sont dotés de serveurs Web intégrés qui peuvent être utilisés pour configurer le périphérique, notamment les périphériques ayant des fonctions spécifiques aux réseaux, tels que les routeurs (y compris de nombreux points d’accès Wi-Fi et les modems DSL) et d’autres périphériques tels que les imprimantes ou les imprimantes. UPS (unités d'alimentation sans coupure sauvegardées par batterie) pouvant avoir une connectivité réseau.
La question "Pourquoi les URL sont-elles sensibles à la casse?" Demande: "Pourquoi les serveurs Web considèrent-ils l'URL comme étant sensible à la casse?" Et la réponse est: ils ne le font pas tous. Au moins un serveur Web, qui est assez populaire, ne respecte généralement pas la casse. (Le serveur Web est IIS.)
L'une des principales raisons du comportement différent d'un serveur Web à l'autre est sans doute une question de simplicité. Le moyen le plus simple de créer un serveur Web consiste à procéder de la même manière que le système d’exploitation de l’ordinateur / du périphérique pour localiser les fichiers. Plusieurs fois, les serveurs Web localisent un fichier afin de fournir une réponse. Unix a été conçu autour d'ordinateurs haut de gamme. C'est pourquoi Unix a fourni les fonctionnalités souhaitables consistant à autoriser les lettres majuscules et minuscules. Unix a décidé de traiter les majuscules et les minuscules comme différentes car, eh bien, elles sont différentes. C'est la chose simple et naturelle à faire. Windows a toujours été insensible à la casse du fait de son désir de prendre en charge les logiciels déjà créés. Cet historique remonte à DOS, qui ne prend tout simplement pas en charge les lettres minuscules. peut-être dans le but de simplifier les choses avec des ordinateurs moins puissants qui utilisent moins de mémoire. Ces systèmes d'exploitation étant différents, il en résulte que les serveurs Web de conception simple (versions antérieures de) reflètent les mêmes différences.
Maintenant, avec tout ce fond, voici quelques réponses spécifiques aux questions spécifiques:
Quand les URL ont été conçues pour la première fois, pourquoi la sensibilité à la casse est-elle devenue une fonctionnalité?
Pourquoi pas? Si tous les serveurs Web standard étaient insensibles à la casse, cela indiquerait qu'ils suivaient un ensemble de règles spécifiées par la norme. Il n'y avait tout simplement aucune règle indiquant que cette affaire devait être ignorée. La raison pour laquelle il n'y a pas de règle est simplement qu'il n'y avait aucune raison pour qu'il en soit ainsi. Pourquoi s'embarrasser de règles inutiles?
Je pose cette question car il me semble (c’est-à-dire un non-initié) que l’insensibilité à la casse serait préférable pour éviter les erreurs inutiles et simplifier une chaîne de texte déjà compliquée.
Les URL ont été conçues pour être traitées par des machines. Bien qu'une personne puisse taper une URL complète dans une barre d'adresse, cela ne faisait pas partie intégrante de la conception envisagée. La conception prévue est que les gens suivent les hyperliens ("cliquent sur"). Si des non-initiés font cela, ils se moquent bien de savoir si l'URL invisible est simple ou compliquée.
En outre, existe-t-il un objectif / avantage réel à avoir une URL sensible à la casse (par opposition à la grande majorité des URL qui pointent vers la même page, quelle que soit la capitalisation)?
Le cinquième point numéroté de la réponse de William Hay mentionne un avantage technique: les URL peuvent être un moyen efficace pour un navigateur Web d’envoyer un peu d’informations à un serveur Web, et davantage d’informations peuvent être incluses s’il ya moins de restrictions, ce qui rend la casse sensible Une restriction réduirait la quantité d'informations pouvant être incluses.
Cependant, dans de nombreux cas, la sensibilité à la casse ne présente aucun avantage incontestable, comme le prouve le fait qu'IIS ne s'en préoccupe généralement pas.
En résumé, la raison la plus convaincante est probablement la simplicité pour ceux qui ont conçu le logiciel de serveur Web, en particulier sur une plate-forme sensible à la casse comme Unix. (HTTP n'était pas quelque chose qui a influencé la conception originale de Unix, car Unix est nettement plus ancien que HTTP.)