2009-06-02 4 views
11

En d'autres termes, cela importe-t-il que j'utilise ou http://wwW.exAmPLe.COm/?Est-ce que le nom d'hôte HTTP (supérieur/inférieur) est important?

J'ai récemment rencontré des problèmes étranges avec les noms d'hôtes: J'ai un serveur web Apache2.2 + PHP5.1.4, accessible par toutes sortes 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 l'entrée par l'intermédiaire http://www.Example.com/, mais pas http://www.example.com/

I J'ai vérifié les RFC HTTP et DNS, mes P3P policies, paramètres de cookie et SOP; pourtant nulle part j'ai vu même une mention de 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 de les traiter de façon appropriée, je fais pas l'analyse syntaxique/traitement sur le nom de domaine dans mon code)

que je fais quelque chose de mal ou est ce juste un peu de navigateur + barre d'outils merde je devrais travailler autour?

Répondre

24

Les noms de domaine sont et non sensible à la casse; Example.com résoudra à la même adresse IP que eXaMpLe.CoM. Si un serveur Web ou un navigateur traite l'en-tête Host comme sensible à la casse, il s'agit d'un bogue.

+2

Vous avez raison - l'un des scripts de mise en cache consistait à comparer les noms de domaine de manière sensible à la casse et était à l'origine des problèmes. Forcer les noms d'hôtes en minuscules semble le réparer. – Piskvor

+5

Ensuite, ce script est très endommagé et doit être corrigé. – bortzmeyer

0

Non, il n'y a pas de sensibilité à la casse en ce qui concerne le spécificateur de protocole.

You can see this in the RFC for URLs.

2.1. Les parties principales des URL

Les noms de schéma sont constitués d'une séquence de caractères. Les lettres minuscules "a" - "z", chiffres, et les caractères plus ("+"), point ("."), Et trait d'union ("-") sont autorisés. Pour la résilience, programmes interprétant URL doivent traiter les lettres majuscules comme équivalents en minuscules dans les noms de schéma (par exemple, autoriser "HTTP" ainsi que "http").

+1

Pourquoi les gens continuent de citer des spécifications obsolètes? Soupir! –

5

Non, cela ne devrait pas faire de différence.

Consultez 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

+1

+1 pour la référence :) – cgp

+5

Nous ne discutions pas du nom du système. (En outre: RFC 1738 est ancien, et a été mis à jour plusieurs fois depuis, le RFC actuel est 3986). –

+0

Par la spécification indiquée ci-dessus ([http://www.ietf.org/rfc/rfc3986.txt][1]). De Page 18: > Bien que l'hôte est insensible à la casse, les producteurs et les normalisateurs > devraient utiliser les minuscules pour les noms enregistrés et hexadécimal > adresses pour un souci d'uniformité, tout en utilisant uniquement en majuscules > lettres pour les codages en pourcentage. .COM accepte les IDN, aussi ... Et IDN ne change rien au fait que les noms de domaine sont insensibles à la casse, donc café.com et http://www.ietf.org/rfc/rfc3986.txt – geedew

1

Selon http://tools.ietf.org/html/rfc1035:

Pour tous parties du DNS qui font partie du protocole officiel, toutes les comparaisons entre les chaînes de caractères (par exemple, étiquettes, noms de domaine, etc.) sont effectuées de manière insensible à la casse. À l'heure actuelle, cette règle est vigueur dans tout le système de domaine sans exception.

Ensuite, il est dit que cela pourrait changer dans le futur. 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.

+0

. CAFÉ.com sont les mêmes. – bortzmeyer

4

Depuis que vous avez formulé votre question comme une question pratique, puis décrit un problème du monde réel, la réponse est en fait: OUI.

Les autres réponses sont correctes sur ce que dit la spécification RFC sur les noms d'hôte. Techniquement, ils devraient être insensible à la casse. (En fait, l'ancienne convention était que le domaine de premier niveau (TLD) était censé être en majuscules ... comme "apple.COM").

Cependant, dans le monde réel, les logiciels matures comme les résolveurs d'OS et les principaux navigateurs ont raison. N'importe quel type de code secondaire pourrait gérer ce problème, et vous embêter.

Questions connexes