我想知道URI标准的设计者为什么选择在URI的定义中使用//
,比如http://
。
为什么要这么复杂呢?为什么不直接使用http:
呢?
以下是关于IT技术的翻译内容:这里有答案。(引用自The Web’s Inventor Regrets One Small Thing)。
回想起来,Tim Berners-Lee也会将其移除。
它被包含的原因是:
双斜杠在当时虽然是编程约定,但最终证明并不是真正必要的。
值得一提的是,RFC 2396涵盖了这个问题。
http://www.ietf.org/rfc/rfc2396.txt
特别是第5.2节的第7部分中的伪代码最好地回答了你的问题,即“//”用于表示其后面是URI的权限部分(因为伪代码还明确指出它不是URI的必需部分)。
if authority is defined then
append "//" to result
append authority to result
另外,在RFC 3986第3节中,更详细地阐述了以下内容:
当没有authority时,路径不能以两个斜线字符(“//”)开头。这些限制导致路径有五个不同的ABNF规则(第3.3节),其中只有一个规则与任何给定的URI引用匹配。
:
可以足够了。对于搜索的努力加一分 :) - Vincent Cantin
\\计算机名\资源
来识别资源,所以这并不是一个奇怪的约定... - user541686//
。它让我们可以做像是//example.com/image.png
这样的事情。 - Ignacio Vazquez-Abrams