我们刚刚在我们的网站上启用了灵活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/
?
答案 0 :(得分:3)
两个人有什么不同吗?
嗯,一个符合RFC 3986,另一个不符合。 Section 3明确指出,scheme与authority之间的分隔符必须为://
。如果是protocol-relative URLs,则必须为//
。如果那里有另一个斜杠,它必须是绝对路径引用的一部分。
另外一组斜线的唯一方法是,如果那些是权威的一部分并离开unencoded。如果//
是开头,那可能会发生:
这里似乎都没有这种情况,我很确定(2)与域名的要求严重冲突,而(1)几乎可以保证引起互操作性问题。因此,我认为无论是谁写的都是错误的。
快速测试显示,当w3m错误输出时,firefox正在消除URL中的虚假斜线。