La partie nom d'hôte des URL HTTP (S) est-elle vraiment insensible à la casse?

16

Est-il sûr d'utiliser http (s): //CompanyName.com/xyz comme URL (par exemple à des fins de personnalisation) sans aucune modification des configurations côté service?

Je sais que le DNS est insensible à la casse, mais pourrait-il encore y avoir des effets secondaires? Je pense par exemple à diverses parties de la chaîne qui ne correspondent pas à CompanyName.com ~ companyname.com:

  • Certains backend web peuvent ne pas correspondre
  • Certains pare-feu d'équilibrage de charge / proxy / cache / application peuvent ne pas correspondre
  • Certains clients peuvent appliquer à tort des politiques de même origine
  • Certains clients peuvent ne pas correspondre dans les vérifications de certificats
  • Alors que le DNS est généralement insensible à la casse, les IDN pourraient-ils changer l'image?

Quelqu'un a-t-il rencontré ces problèmes ou d'autres problèmes avec les majuscules dans la partie du nom d'hôte des URL?


[modifier] @Michael Hampton a souligné que, selon les normes HTTP, le nom d'hôte est insensible à la casse, mais certains logiciels ne sont pas conformes à cet égard.

J'essaie de comprendre à quel point les logiciels non conformes sont répandus, en particulier les clients. Je suppose que tous les principaux navigateurs récents fonctionnent bien, mais qu'en est-il par exemple des applications mobiles? (Dois-je mieux séparer cela en une question SF distincte?) [/ Modifier]

Nils Toedtmann
la source
Firefox, par exemple, envoie un en- Hosttête en minuscules (du moins c'est ce que mes outils de développement me montrent), donc en supposant que tous les navigateurs le font, vous ne devriez pas avoir de problème même si certains équipements sur le chemin du serveur n'aiment pas les cas mixtes nom d'hôte. curld'autre part, conserve la casse lors de l'envoi de l'en-tête.

Réponses:

23

Oui, le nom d'hôte est vraiment insensible à la casse, comme spécifié dans la RFC 3986 § 3.2.2 , car les noms d'hôte en général ne respectent pas la casse dans le DNS . Ce RFC donne également des recommandations sur la façon d'éviter les problèmes que vous avez mentionnés:

Bien que l'hôte ne respecte pas la casse, les producteurs et les normalisateurs doivent utiliser des minuscules pour les noms enregistrés et les adresses hexadécimales par souci d'uniformité, tout en utilisant uniquement des lettres majuscules pour les encodages en pourcentage.

Je l' ai vu au moins un cache HTTP ( W3 Total Cache ) qui ne normalise le nom d' hôte de cette manière, et se termine la mise en cache contenu plusieurs fois, par exemple sous example.com, Example.Com, EXAMPLE.COM, etc.

Michael Hampton
la source
1
Au moins aussi longtemps que le pire se produit, le contenu est mis en cache plusieurs fois par des caches non conformes, ce qui semble être quelque chose avec lequel on peut vivre.
un CVn