L'URL doit-elle être sensible à la casse?

j'ai remarqué que

HTTP://STACKOVERFLOW.COM/QUESTIONS/ASK

et

http://stackoverflow.com/questions/ask

les deux fonctionne très bien - en fait, le précédent est convertie en minuscules.

je pense que cela a du sens pour l'utilisateur.

si je regarde Google alors cette URL fonctionne très bien:

http://www.google.com/intl/en/about/corporate/index.html  

mais celui-ci avec "ABOUT" ne fonctionne pas:

http://www.google.com/intl/en/ABOUT/corporate/index.html   

L'URL doit-elle être sensible à la casse?

240
url
demandé sur the Tin Man 2011-11-03 18:50:08

13 réponses

, Selon W3 " HTML et Url " ils doivent:

il peut y avoir des URLs, ou des parties D'URLs, où le cas n'a pas d'importance, mais l'identification de ces peut ne pas être facile. Les utilisateurs doivent toujours considérer que Les URLs sont sensibles à la casse.

231
répondu jldupont 2016-08-19 21:45:45

tous " insensible " s sont en caractères gras pour plus de lisibilité.

les noms de domaine sont des noms de cas insensible selon RFC 4343 . Le reste de L'URL est envoyé au serveur via la méthode GET. Cela peut être sensible à la casse ou non.

profiter de cette page par exemple, stackoverflow.com reçoit OBTENEZ chaîne /questions/7996919/devraient-url-être sensible à la casse , l'envoi d'un Document HTML à votre navigateur. Stackoverflow.com est cas insensible parce qu'elle produit le même résultat pour /QUEStions/7996919/Devraient-url-être sensible à la casse .

D'un autre côté, Wikipedia est sensible à la casse sauf le premier caractère du titre. Les URLs https://en.wikipedia.org/wiki/Case_sensitivity et https://en.wikipedia.org/wiki/case_sensitivity conduit à le même article, mais https://en.wikipedia.org/wiki/CASE_SENSITIVITY renvoie 404.

104
répondu jdh8 2015-04-25 13:23:22

dépend de l'os d'hébergement. Les Sites qui sont hébergés sur Windows ont tendance à être insensibles à la casse car le système de fichiers sous-jacent est insensible à la casse. Les Sites hébergés sur des systèmes de type Unix ont tendance à être sensibles à la casse car leurs systèmes de fichiers sous-jacents sont généralement sensibles à la casse. La partie nom d'hôte de L'URL est toujours insensible à la casse, c'est le reste du chemin qui varie.

65
répondu Jim Nutt 2011-11-03 14:53:57

la partie nom de domaine d'une URL N'est pas sensible à la casse puisque DNS ignore case: http://en.example.org/ et HTTP://EN.EXAMPLE.ORG/ ouvrent la même page.

le chemin est utilisé pour spécifier et peut-être trouver la ressource demandée. Il est sensible à la casse, bien qu'il puisse être traité comme insensible à la casse par certains serveurs, en particulier ceux basés sur Microsoft Windows.

si le serveur est sensible à la casse et http://en.example.org/wiki/URL est correct, alors http://en.example.org/WIKI/URL ou http://en.example.org/wiki/url affichera une page D'erreur HTTP 404, à moins que ces URL ne pointent vers des ressources valides elles-mêmes.

27
répondu Bhavin Shah 2016-08-19 21:46:59

Je ne suis pas un fan de cogner de vieux articles mais parce que c'était l'une des premières réponses pour cette question particulière j'ai senti un besoin de clarifier quelque chose.

comme la réponse de @Bhavin Shah indique la partie domaine de l'url est insensible à la casse, donc

http://google.com 

et

http://GOOGLE.COM 

et

http://GoOgLe.CoM 

sont tous les mêmes, mais tout ce qui suit le nom de domaine est considéré comme sensible à la casse.

so...

http://GOOGLE.COM/ABOUT

et

http://GOOGLE.COM/about

sont différents.

Note: je parle" techniquement "et pas" littéralement " dans de nombreux cas, la plupart du temps, les serveurs sont configurés pour gérer ces éléments de la même façon, mais il est possible de les configurer de sorte qu'ils ne sont pas traités de la même manière.

Différents serveurs gérer cela différemment et, dans certains cas, ils doivent être sensible à la casse. Dans de nombreux cas, les valeurs de la chaîne de requête sont encodées (comme les IDS de Session ou les données encodées Base64 qui sont passées en tant que valeur de la chaîne de requête).

donc pour répondre à la question," devrait "serveurs être sensible à la casse en saisissant ces données, la réponse est" oui, très certainement."

bien sûr, tout ne doit pas être sensible à la casse, mais le serveur doivent être conscients de ce que c'est et comment gérer ces cas.


@le commentaire de Hart Simha dit en gros la même chose. Je l'ai manqué avant de poster donc je veux donner crédit là où le crédit est dû.

13
répondu Kenneth Garza 2016-08-19 21:47:53

Regardez la spécification ici: section 2.7.3 http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-25#page-19

le schéma et l'hôte sont insensibles à la casse et sont normalement fournis en minuscules; tous les autres composants sont comparés dans un système sensible à la casse. manière.

5
répondu Nitin 2016-01-12 08:09:34
Les URLs

devraient être insensibles à la casse, à moins qu'il n'y ait une bonne raison pour qu'elles ne le soient pas.

ce N'est pas obligatoire (il ne fait pas partie d'un RFC) mais il rend la communication et le stockage des URL beaucoup plus fiable.

si j'ai deux pages sur un site web:

http://stackoverflow.com/ABOUT.html

et

http://stackoverflow.com/about.html

en quoi devraient-ils différer? Peut - être que l'un d'eux est écrit "crying style" (caps) - mais du point de vue de L'analyse D'impact de vue, la distinction ne devrait jamais être faite par un changement dans le cas de l'URL.

de plus, il est facile de l'implémenter dans Apache - il suffit d'utiliser CheckSpelling On de mod_Speling.

2
répondu konchog 2016-08-19 21:49:14

question ancienne mais je suis tombé ici alors pourquoi ne pas prendre un coup de feu à elle puisque la question est à la recherche de diverses perspectives et non une réponse définitive.

w3c peut avoir ses recommandations - que je me soucie beaucoup - mais veulent repenser puisque la question est ici.

pourquoi le w3c considère-t-il les noms de domaine comme insensibles à la casse et laisse tout ce qui reste insensible à la casse ?

je pense que la raison est que le domaine une partie de L'URL est tapée à la main par un utilisateur. Tout ce qui est hyper texte sera résolu par la machine (navigateur et serveur à l'arrière).

Les Machines

peuvent mieux traiter l'insensibilité à la casse que les humains (pas le type technique:)).

mais la question Est Juste parce que les machines peuvent gérer que devrait-il être fait de cette façon ?

je veux dire quels sont les avantages de nommer et d'accéder à une ressource se trouvant à hereIsTheResource vs hereistheresource ?

Le latéral est très illisible que le chameau cas qui est plus lisible. Lisible pour L'homme (y compris le type technique).)

donc voici mes points: -

Resource Path tombe quelque part dans le milieu de la structure de programmation et d'être près d'un utilisateur final derrière le navigateur parfois.

votre URL (à l'exclusion du nom de domaine) doit être insensible à la casse si vos utilisateurs sont on s'attend à le toucher ou le dactylographier, etc. Vous devez développer votre application pour éviter que les utilisateurs tapent le chemin autant que possible.

votre URL (à l'exclusion du nom de domaine) devrait être sensible à la casse si vos utilisateurs ne la taperaient jamais à la main.

Conclusion

Le chemin

doit être sensible à la casse. Mes points de vue sont en train de peser vers les chemins sensibles à l'affaire.

0
répondu bhantol 2014-08-05 15:12:58

les caractères D'URL sont convertis en code hexadécimal (si vous avez déjà remarqué que les espaces dans les URLs sont affichés en %20, etc.), et comme les minuscules et les majuscules ont des valeurs hex différentes, il est parfaitement logique que les URLs soient très certainement sensibles à la casse. Toutefois, L'esprit de la question semble être que ce soit la norme et je dis non, mais ils le sont. C'est au développeur/fournisseur de tenir compte de cela dans son code s'il veut que cela fonctionne indépendamment pour un utilisateur final.

0
répondu Guest 2016-04-19 16:12:47

je pense que ceci et beaucoup de réponses autour de ce que le spec fait ou ne dit pas manque le point de la question. devraient-ils être sensibles à la casse? C'est une question piège vraiment. Du point de vue de l'utilisateur, la sensibilité à la casse-tête est un point douloureux. La question de savoir si URIs devrait ou non l'être dépend du contexte de la question. Pour la flexibilité technique, oui, ils devraient l'être. Pour la facilité d'utilisation, non, ils ne devraient pas l'être.

0
répondu rspring1975 2017-07-05 17:30:12

pour les sites hébergés sur un serveur Linux, L'URL est sensible à la casse. http://www.google.com/about et http://www.google.com/About sera redirigé vers des endroits différents. Alors que dans un serveur Windows, URL est insensible à la casse, comme dans nommer un dossier et sera redirigé vers le même endroit.

-2
répondu Vishnu 2015-06-03 13:22:01

la question Est de savoir si l'url doit être sensible à la casse?

Je ne vois aucune utilité, ou bonne pratique derrière les URLs sensibles à la casse. Il est stupide, il craint et devrait être évité à tout moment.

juste pour confirmer mon opinion, quand quelqu'un demande quelle URL, comment pourriez-vous expliquer quels caractères de L'URL sont en majuscules ou en minuscules? C'est absurde et personne ne devrait vous dire le contraire.

-3
répondu HenriKoppen 2013-08-21 14:17:37

il est possible de rendre les URLs non sensibles à la casse

RewriteEngine on
rewritemap lowercase int:tolower
RewriteCond  [A-Z]
RewriteRule ^/(.*)$ /${lowercase:} [R=301,L]

fabrication Google.com..GOOGLE.com etc direct to google.com

-6
répondu Renjith Gopi 2015-07-01 09:33:37