省略协议(方案)的绝对URL,以保留当前页面之一


85

我看到了//somepage.com/resource网址格式。例如:

<img src="//remotesite.com/image1.jpg" />

这样做的目的是,如果当前页面(定义img标签的页面)正在使用http,则通过http向远程站点的请求。如果是https-是https。这消除了浏览器未完全加密页面的警告。

我的问题是-此URL格式可安全用于所有浏览器吗?这是标准吗?


4
相关:我可以将所有http://链接更改为//吗?回答您的第一个问题,Scheme相对URL回答您的第二个问题。
Gumbo'2



尽管您在问题中未使用该术语,但我添加了协议相对标签(因此可以更轻松地找到此问题)。
2014年

Answers:


61

该网址格式可安全用于所有浏览器吗?

我不能肯定地说什么,但是您应该能够在不同的浏览器中对其进行测试。

这是标准吗?

从技术上讲,它被称为RFC 3986的“网络路径参考” 。这是它的方案:

  relative-ref  = relative-part [ "?" query ] [ "#" fragment ]

  relative-part = "//" authority path-abempty
                / path-absolute
                / path-noscheme
                / path-empty

但是,当在<link>或上使用@importIE7和IE8时,会下载文件。

这是保罗·爱尔兰(Paul Irish)撰写的有关该主题的文章:


1
请注意,Paul Irish更新了他的帖子,以指示在可行的情况下现在应该始终通过https提供资源。请参阅上面@Sarfraz链接的帖子。
埃文·多诺万

1
Google Analytics(分析)摘要代码使用此方案,因此我敢打赌,虽然许多网站都在使用此工具,但它是跨浏览器,否则它们只会提供https版本
Lukas Liesis

22

是的,我相信是的。Paul Irish创造了术语“协议相对URL”

我还要指出,这是HTML5Boilerplate项目的一部分,该项目宣扬了跨浏览器的兼容性。

注意: Paul的文章中提到了IE6中带有Google Analytics(分析)的极端情况。因此它并不完美。


这不再是真的,请参阅stackoverflow.com/a/37609402/2237601此处,他们现在使用https://。另请参阅此处,为什么省略协议方案可能不是一个好主意。
bg17aw 2016年

2

应该是安全的。

在Google的HTML / CSS样式指南中指定为要使用的格式:编辑:最新网址:https ://google.github.io/styleguide/htmlcssguide.xml#Protocol

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.