HTTP后跟四个斜杠是什么意思?

3
我们刚刚在我们的网站上启用了灵活的SSL(CloudFlare),当我注意到Font-Awesome css文件的链接是这样的时,我正在更换所有的http://example.com///example.com/http:////maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css。http后面跟着四个斜杠,我见过三个(在浏览器中使用本地文件时)和两个是一般标准,但四个呢?那么四个有什么不同吗?我可以将http:////example.com/替换为//example.com/还是应该是////example.com/
1个回答

3

这和“two”有什么不同吗?

嗯,其中一个符合RFC 3986,而另一个则不符合。第3节明确规定,schemeauthority之间的分隔符必须是://。在协议相对URL的情况下,起始部分必须为//。如果还有另一个斜杠,则它必须是绝对路径引用的一部分。

唯一可能出现额外斜杠的方式是如果它们是权限的一部分并且未经编码的unencoded。如果//是以下内容的开头,则可能会发生这种情况:
  1. 用户名
  2. 域名
两者似乎都不是这种情况,我非常确定(2)与域名要求严重冲突,而(1)几乎肯定会导致互操作性问题。因此,我认为这是由编写此代码的人引起的错误。
快速测试表明Firefox正在消除URL中的虚假斜杠,而w3m则出错。

有趣,谢谢 - 特别是因为我非常确定那是直接从bootstrapcdn.com复制过来的! - CalvT
@CalvT:嗯,忘了提一下:这可能是压缩资产生成器中的一个 bug... - DaSourcerer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接