在“ http: ”之后,我一直使用带有和不带“ // ”的URL,但是“ // ”真的代表什么?
Slashdot几天前有一篇关于这个的文章 。 蒂姆·伯纳斯·李(Tim Berners-Lee)表示,为什么两条斜线在那里并没有什么特别的理由(另见http://bits.blogs.nytimes.com/2009/10/12/the-webs-inventor-regrets-one-small-事情/ )。
就我个人而言,我喜欢这种风格的URL:
http:/com/example/www/blah1/blah.html
在这样的URL中没有明确的“主机名”。 如果您的“www.example.com”服务器场对“/ blah1”资源的请求负担过重,则只需创build一个“blah1.www.example.com”DNSlogging,并将其指向另一个承载“ / com / example / blah1“资源层次结构。
毫无疑问,这种想法对于DNS具有重要意义,现在肯定不会发生(不止是突然有时钟逆时针方向运行),但我认为它会工作得相当好。
编辑:SRV RR的网站也会非常好。 地狱 – SRV RR的任何事情都会很好。
在Tim Berners-Lee的常见问题中有一个答案(链接在@Evan Anderson的答案中提到的slashdot讨论中)。 基本上,他复制了Apollo Domain的文件名语法,其中用双斜线开始一个path,后跟一个计算机的名字,用来透明地访问其他计算机上的文件(单个斜线仍然是根目录)。 他只是把它与协议,在这种情况下, http
。
在Unix标准中仍然存在这种特殊情况,其中文件名开头的两个斜杠可以以实现定义的方式解释 (三个或更多斜线相当于一个)。 同样的约定在Windows中被广泛使用,只有反斜杠而不是正斜杠(在那里称为UNCpath )。
xx://是用来指定使用的协议,这是一个双/所以它不能与只是一个子文件夹混淆。
蒂姆·伯纳斯·李承认,这是为了分开地址的协议,但结果是没有必要的。
http://www.theinquirer.net/inquirer/news/1558680/berners-lee-regrets-double-slash
请参阅RFC 1738 ,第3.1节:
虽然URL的其余部分的语法可能会根据所选的特定scheme而有所不同,但涉及将基于IP的协议直接用于Internet上的指定主机的URLscheme使用针对scheme特定数据的通用语法:
//<user>:<password>@<host>:<port>/<url-path>
部分或全部
"<user>:<password>@"
,":<password>"
,":<port>"
和"/<url-path>"
可能被排除。 scheme特定的数据以双斜线"//"
开始,以表示它符合常用的Internetscheme语法。
它认为它的字面意思是“重击!”,从真正的早期时间,实际上连接到一个网站要求一些巫术,你不得不牺牲(重击)不是一个,而是两个鸡取悦WorldWideWeamons .. 🙂
它表示地址的根源。