HTTP(S)URL的主机名部分是否真的不区分大小写?

使用http(s)://CompanyName.com/xyz作为URL(例如出于品牌的目的)而不改变服务端configuration是否安全?

我知道DNS是不区分大小写的,但是还是会有副作用? 我正在考虑如链的各个部分未能匹配CompanyName.com〜companyname.com:

  • 某些networking后端可能无法匹配
  • 某些负载平衡器/代理/caching/应用程序层防火墙可能无法匹配
  • 有些客户可能错误地应用同源策略
  • 某些客户端可能无法在证书检查中匹配
  • 虽然DNS通常不区分大小写,但是IDN可以更改图片吗?

任何人在URL的主机名部分经历过这些或其他问题的资本?


[编辑] @迈克尔汉普顿指出,根据HTTP标准,主机名是不区分大小写的,但是在这方面有些软件是不兼容的。

我尝试了解非兼容软件是多么普遍,特别是客户端。 我假设所有最近的主stream浏览器都很好,但是关于移动应用程序呢? (我应该更好地把它分解成一个单独的SF问题?)[/编辑]

是的,主机名实际上是不区分大小写的,正如RFC 3986第3.2.2节中所规定的 ,因为主机名在DNS中通常是不区分大小写的 。 这个RFC也给出了如何避免你提到的问题的build议:

虽然主机不区分大小写,但为了统一,生产者和规范者应该使用小写字母来表示注册名称和hex地址,而只使用大写字母来表示百分比编码。

我已经看到至less有一个HTTPcaching( W3总caching ),这种方式没有以这种方式规范主机名,并且多次caching内容,例如在example.comExample.ComEXAMPLE.COM等。