以“//”开始外部网站链接

时间:2012-02-10 22:57:54

标签: html hyperlink web-standards

  

可能重复:
  Is it valid to replace with // in a <script src=“…”>?
  Links start with two slashes

我现在在几个网站上看到了这个。一个简单的例子是查看维基百科登陆页面的来源:

<link rel="shortcut icon" href="//en.wikipedia.org/favicon.ico" />
<link rel="apple-touch-icon" href="//upload.wikimedia.org/wikipedia/commons/f/f1/Wikipedia-mobile-icon.png" />
<link rel="copyright" href="//creativecommons.org/licenses/by-sa/3.0/" />

是否有一些与//启动外部链接的标准?这样做是为了避免必须下载额外的https?:并保存一些字符,因为大多数浏览器足够聪明,可以自己添加其余的方案吗?或者这是合法的事情,也许是出于其他原因?

3 个答案:

答案 0 :(得分:7)

这通常称为协议相对URL,允许浏览器使用与加载页面相同的协议下载资源。因此,如果用户通过https网址加载了网页,则//指定的资源将通过https加载,否则会通过常规http加载。

它可以帮助您防止的一件事是旧版IE中用户不友好的消息,说明该页面包含安全和非安全资源。

Paul Irish撰写了一篇关于此事的好文章:

答案 1 :(得分:0)

这允许您在不指定http或https的情况下下载资源;它将使用您当前正在使用的任何内容。

答案 2 :(得分:0)

不在URL中指定方案将导致浏览器采用当前方案。你可以在这里阅读一篇很好的文章:

http://paulirish.com/2010/the-protocol-relative-url/

这是它的主要好处:

  

如果浏览器正在通过HTTPS查看当前页面,那么   它将使用HTTPS协议请求该资产,否则它将会   通常*使用HTTP请求它。这可以防止这个糟糕的“本页   包含安全和非安全项“IE中的错误消息,   将所有资产请求保存在同一协议中。

有一些怪癖......

  

<link>@import上用于样式表,IE7和IE8时   下载文件两次。然而,所有其他用途都很好。

...但一般来说,你可以安全地使用它。