换句话说,我是否使用有关系吗? http://www.example.com/ 或者 http://wwW.exAmPLe.COm/ ?

我最近遇到了主机名的奇怪问题:我有一个Apache2.2+PHP5.1.4网络服务器,可以通过各种浏览器访问。特别是 IE6 用户(尤其是 IE6 用户)当他们的 UA 字符串负载着大量 BHO 时,还没有模式)在通过以下方式进入时似乎访问该网站时出现问题(cookie 消失,JS 拒绝加载) http://www.Example.com/, , 但不是 http://www.example.com/

我已经检查过 HTTP协议域名系统 RFC,我的 P3P政策, 、cookie 设置和 标准作业程序;但我什至没有看到提及域名区分大小写。

(我知道路径和查询字符串区分大小写( ?x=foo 不同于 ?x=Foo )并适当对待他们;我的代码中没有对域名进行解析/处理)

我是否做错了什么,或者这只是我应该解决的一些浏览器+工具栏废话?

有帮助吗?

解决方案

域名是的区分大小写; Example.com解析到相同的IP eXaMpLe.CoM。如果Web服务器或浏览器对待Host标头,如区分大小写的,这是一个错误。

其他提示

没有,这不应该有任何区别。

检查出URL RFC规格( http://www.ietf.org/rfc/ rfc1738.txt )。从第2.1节:

  

有关的弹性,程序解释   网址应该把大写字母   为等同方案小写   名称

由于您将问题表述为实际问题,然后描述了现实世界的问题,所以答案实际上是:是的。

关于 RFC 规范关于主机名的内容,其他答案是正确的。从技术上讲,它们应该不区分大小写。(事实上​​,较旧的惯例是顶级域名 (TLD) 应该全部大写......例如“apple.COM”)。

然而,在现实世界中,操作系统解析器和主要浏览器等成熟软件可以做到这一点。任何类型的辅助代码都可能错误地处理这个问题,并把你搞砸。

根据 http://tools.ietf.org/html/rfc1035

  

有关属于官方协议的一部分的DNS的所有部分,都   字符串之间的比较(例如,标签,域名等)   在不区分大小写的方式完成。目前,这条规则是   整个域系统力无异常。

然后它接着说,这可能在未来改变。我认为它是安全的假设COM域名是不区分大小写的,但其他领域允许使用的非ASCII字符可能会有所不同。

没有,存在与关于所述协议指定符不区分大小写。

可以在RFC针对URL 看到这一点。

  

2.1。网址的主要部分

     

方案名称由一个序列的   字符。小写字母   “A” - “Z”,数字和字符   加号( “+”),句点( “”)和连字符   (“-“) 被允许。对于弹性,   项目解释网址应   治疗大写字母等同   以降低方案的名称的情况下(例如,   允许 “HTTP” 以及 “HTTP”)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top