HTTP后跟四个斜杠?

时间:2016-04-28 09:51:04

标签: http url

我们刚刚在我们的网站上启用了灵活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 个答案:

答案 0 :(得分:3)

  

两个人有什么不同吗?

嗯,一个符合RFC 3986,另一个不符合。 Section 3明确指出,schemeauthority之间的分隔符必须为://。如果是protocol-relative URLs,则必须为//。如果那里有另一个斜杠,它必须是绝对路径引用的一部分。

另外一组斜线的唯一方法是,如果那些是权威的一部分并离开unencoded。如果//是开头,那可能会发生:

  1. 用户名
  2. 域名
  3. 这里似乎都没有这种情况,我很确定(2)与域名的要求严重冲突,而(1)几乎可以保证引起互操作性问题。因此,我认为无论是谁写的都是错误的。

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