2016-04-28 70 views
3

我们刚刚启用灵活SSL(CloudFlare的)在我们的网站和我正在经历交换所有http://example.com/只是//example.com/,当我发现的链接字体 - 真棒CSS文件是这样的:HTTP后跟四个斜杠?

http:////maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css

http后面跟着四个斜杠,我见过三个(当在浏览器中使用本地文件时),两个是通用标准,但是四个?

那么四个人做了什么?这与二者有什么不同?我可以将http:////example.com/换成//example.com/还是应该换成////example.com/

回答

3

这与二者有什么不同吗?

那么,一个是符合RFC 3986,另一个不是。 Section 3明确指出schemeauthority之间的分隔符必须是://。在protocol-relative URLs的情况下,开始必须是//。如果有另一个斜线,它必须是绝对路径参考的一部分。

如果那些是权限的一部分并且离开unencoded,那么需要额外一组斜杠的唯一方法。这可能发生,如果//是开始:

  1. 用户名
  2. 域名

无论是一个似乎这里是这样的,我敢肯定,(2)是冲突(1)几乎可以保证引起互操作性问题。所以我认为这是由谁写的。

一个快速测试显示,当w3m出错时,firefox正在消除URL中的虚假斜线。

+0

有趣的感谢 - 特别是因为我敢肯定,它是从'bootstrapcdn.com'直接复制! –

+0

@CalvT:嗯,忘了提及:这可能是无论生成压缩资产的错误...... – DaSourcerer