URI是否不区分大小写?

18 specifications protocols http rfc2616

在比较两个URI以确定它们是否匹配时,客户端
应该使用整个
URI 的区分大小写的八位字节比较,但有以下例外:

我在Http Rfc上面读过句子我认为Url是不区分大小写的,但我不会动摇,这意味着什么?

Rem*_*eau 26

RFC 3986声明:

方案和主机不区分大小写,因此应该标准化为小写.例如,URI <HTTP://www.EXAMPLE.com/>相当于<http://www.example.com/>. 除非方案另外特别定义,否则假定其他通用语法组件区分大小写

RFC 2616为该HTTP方案定义了以下比较规则:

在比较两个URI以确定它们是否匹配时,客户端应该使用整个URI的区分大小写的八位字节比较,但有以下例外:

但是,RFC 7230通过声明:

该方案和主机不区分大小写,通常以小写形式提供; 所有其他组件都以区分大小写的方式进行比较.

这些规则通常适用于客户端比较.没有专门针对服务器端比较的规则.一旦服务器将URI分解为其组件,它应该根据相同的规则对待它们,但我没有看到在RFC中强制执行.某些Web服务器(如Apache)确实遵循这些规则.IIS不与Windows的不区分大小写的文件系统兼容.


Eri*_* J. 14

实际上,它取决于Web服务器.

IIS不区分大小写.

Apache是​​.

我怀疑关于IIS的决定源于Windows文件系统不区分大小写的事实.

IIS仍然符合规范的这一部分,因为SHOULD是推荐,而不是要求.

  • SHOULD 是建议,而不是要求。它仍然符合规格。 (2认同)

chu*_*e x 8

URI的主机部分不区分大小写:

http://stackoverflow.com
http://StackOverflow.com
Run Code Online (Sandbox Code Playgroud)

上述任何一个都会带你到这个网站.

主机部分之后的其余URI可以区分大小写.这取决于服务器.

  • @Colin'tHart - 你是正确的,网络服务器可以根据域的情况采取不同的行动.但一般来说,网络服务器不会这样做.如果你知道有一个,我会有兴趣听到它. (2认同)