我想问为什么http://
包含两个斜杠,它只是标准的URL或任何逻辑意义?为什么file:///
包含三个斜杠?
file:///C:/a.html
答案 0 :(得分:9)
URI的authority component必须以//
开头:
权限组件前面有双斜杠(“//”)[...]
这也是why not all URIs contain the double slash:因为并非所有URI都有权限组件(例如,使用mailto
方案的URI,xmpp
方案等)。
如果你想知道为什么(HTTP)URI选择了双斜杠而不是其他东西(或什么都没有),请参阅Tim Berners-Lee的常见问题Why the //, #, etc?→ //的历史是什么?
tl; dr:他复制了Apollo使用的文件名语法。
顺便说一下,他对这个选择表示遗憾:
我不得不说现在我很遗憾语法太笨拙了。我希望
http://www.example.com/foo/bar/baz
只是写成http:com/example/foo/bar/baz
,客户端会在其中找出www.example.com
存在并且是要联系的服务器。但现在已经太晚了。
答案 1 :(得分:5)
如此superuser post中所述:
完整语法为file:// host / path。
如果主机是localhost,则可以省略它,导致 文件:///路径
换句话说,引用计算机中的文件就像引用localhost中的文件一样。