Est-ce que le cas du nom d'hôte HTTP (majuscules / minuscules) la matière?
-
06-09-2019 - |
Question
En d'autres termes, il importe peu que j'utilise http://www.example.com/ ou http://wwW.exAmPLe.COm/ ?
Je cours sur des questions étranges avec l'hôte noms de ces derniers temps: J'ai un serveur web Apache2.2 + PHP5.1.4, accessible par tous les types de navigateurs. IE6 utilisateurs (en particulier. esp lorsque leur chaîne UA est grevée de nombreux BHO, pas de modèle encore) semblent avoir des problèmes d'accès au site (les cookies disparaissent, JS refuse de charger) lors de la saisie via http://www.Example.com/ , mais pas http://www.example.com/
J'ai vérifié HTTP et DNS RFCs, mon politiques P3P , les paramètres des cookies et SOP ; mais nulle part j'ai vu même une mention des noms de domaine étant sensible à la casse.
(je sais chemin et chaîne de requête sont sensibles à la casse (?x=foo
est différent de ?x=Foo
) et les traiter de façon appropriée, je fais pas l'analyse syntaxique / traitement sur le nom de domaine dans mon code)
Suis-je faire quelque chose de mal ou est-ce juste une merde de navigateur + barre d'outils je contourner?
La solution
Les noms de domaine sont pas sensible à la casse; Example.com
résoudra à la même adresse IP que eXaMpLe.CoM
. Si un serveur Web ou le navigateur traite l'en-tête Host
comme sensible à la casse, qui est un bug.
Autres conseils
Non, cela ne devrait pas faire de différence.
Vérifiez l'URL RFC Spec ( http://www.ietf.org/rfc/ rfc1738.txt ). De la section 2.1:
Pour la résilience, les programmes d'interprétation URL doivent traiter les majuscules comme équivalent en minuscules dans le schéma noms
Puisque vous LIBELLEES votre question comme une question d'ordre pratique, puis décrit un problème réel, la réponse est en réalité. OUI
Les autres réponses sont correctes au sujet de la spécification que la RFC dit à propos hostname. Techniquement, ils doivent être insensibles à la casse. (En fait, la convention était plus que le domaine de premier niveau (TLD) était censé être en majuscules ... comme « apple.COM »).
Cependant, dans le monde réel, le logiciel mature comme résolveurs OS et les principaux navigateurs obtenir ce droit. Tout type de code secondaire pourrait être la manipulation de ce mal, et vous chambouler.
Selon http://tools.ietf.org/html/rfc1035 :
Pour toutes les parties du DNS qui font partie du protocole officiel, tous les Les comparaisons entre les chaînes de caractères (par exemple, des étiquettes, des noms de domaine, etc.) sont effectuées de manière insensible à la casse. À l'heure actuelle, cette règle est la force dans le système de domaine sans exception.
Il va ensuite dire que cela pourrait changer à l'avenir. Je pense qu'il est sûr de supposer que le domaine COM est insensible à la casse, mais d'autres domaines permettant l'utilisation de caractères non-ASCII peuvent différer.
Non, il n'y a pas de sensibilité à la casse en ce qui concerne le spécificateur de protocole.
Vous pouvez le voir dans la RFC pour les URL .
2.1. Les parties principales d'URL
noms de schéma sont constitués d'une séquence de personnages. Les lettres minuscules "A" - "z", des chiffres et des caractères plus ( "+"), la période ( ""), et le tiret ("-") sont autorisés. Pour la résilience, programmes d'interprétation URL doivent traiter les lettres majuscules comme équivalentes en minuscules dans les noms de régime (par exemple, permettre "HTTP", ainsi que "http").