为什么HTTP://在浏览器中包含两个斜杠和file:///三个?

时间:2016-04-05 17:42:21

标签: url web

我想问为什么http://包含两个斜杠,它只是标准的URL或任何逻辑意义?为什么file:///包含三个斜杠?

file:///C:/a.html

2 个答案:

答案 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中的文件一样。