URL中的协议名称是否区分大小写?

时间:2010-01-27 16:35:21

标签: url case-sensitive

hTTp://foo.comHttp://foo.COM相同吗?

我知道主机名不敏感,但路径名和查询部分是敏感的。

4 个答案:

答案 0 :(得分:19)

该方案不区分大小写:http://tools.ietf.org/html/rfc3986#section-3.1

主机名也不区分大小写,因为它是DNS。

其余部分区分大小写。

答案 1 :(得分:10)

它在实践中并不敏感,但理论上只允许小写。

来自RFC 1738

  

2.1。 URL的主要部分

     

网址的完整BNF说明   语法在第5节中给出。

     

通常,URL被写为   如下:

   <scheme>:<scheme-specific-part>
     

网址包含的名称   正在使用的方案()   通过冒号然后是一个字符串(   )其中   解释取决于计划。

     

方案名称由序列组成   的人物。小写字母
  字母“a” - “z”,数字和   字符加(“+”),句号
  (“。”)和连字符(“ - ”)是允许的。   对于弹性,程序
  解释URL应该对待上层   大写字母相当于较低的   方案名称中的案例(例如,允许   “HTTP”以及“http”)。

答案 2 :(得分:4)

引用RFC3986

  

虽然方案不区分大小写,但规范形式是小写的,指定方案的文档必须使用小写字母[...]

答案 3 :(得分:3)

this document(对于某些HTML规范)说:

  

URL通常区分大小写(机器名称除外)。可能存在URL或URL的一部分,其中大小写无关紧要,但识别这些可能并不容易。用户应始终认为URL是区分大小写的

RFC1738 (Uniform Resource Locators (URL))说(注意,网址格式为<scheme>:<scheme-specific-part>):

  

方案名称由一系列字符组成。允许使用小写字母“a” - “z”,数字和字符加(“+”),句点(“。”)和连字符(“ - ”)。为了弹性,解释URL的程序应将大写字母视为与方案名称中的小写字母等效(例如,允许“HTTP”以及“http”)。

因此只允许使用小写字符,但允许使用大写字符 Btw Safari会自动转换为小写字符。