hTTp://foo.com
和Http://foo.COM
是相同的吗?
我知道主机名不区分大小写,但路径名和查询部分是区分大小写的。
hTTp://foo.com
和Http://foo.COM
是相同的吗?
我知道主机名不区分大小写,但路径名和查询部分是区分大小写的。
该方案不区分大小写:https://www.rfc-editor.org/rfc/rfc3986/rfc3986#section-3.1
主机名也不区分大小写,因为它是 DNS。
其余部分区分大小写。
在实践中不区分大小写,但在理论上只允许使用小写。
来自RFC 1738
2.1. URL的主要部分
URL语法的完整BNF描述在第5节中给出。
一般来说,URL的书写方式如下:
<scheme>:<scheme-specific-part>
URL包含正在使用的方案名称()后跟冒号,然后是一个字符串(其
解释取决于方案。方案名称由一系列字符组成。小写字母“a”-“z”,数字和字符加号(“+”),期间
(“.”)和连字符(“-”)是允许的。为了弹性,在解释URL的程序中
应将大写字母视为与方案名称中的小写字母相等(例如,允许
“HTTP”以及“http”)。
这份HTML规范(某些HTML规范)指出:
URL通常区分大小写(机器名称除外)。可能存在URL或URL的一部分不区分大小写的情况,但识别它们可能并不容易。用户应始终考虑URL是区分大小写的。
RFC1738(统一资源定位符(URL))也指出(注意,URL的格式为<scheme>:<scheme-specific-part>
):
方案名由一系列字符组成。允许使用小写字母“a”-“z”、数字和字符加号(“+”)、句点(“.”)和连字符(“-”)。为了提高鲁棒性,解释URL的程序应将方案名中的大写字母视为等效于小写字母(例如,允许“HTTP”和“http”)。
因此,只允许小写字母,但是大写字母也被容忍。
顺便说一下,Safari会自动转换为小写字母。