标签: protocol-relative

在<script src ="http:// ...">中用//替换http://是否有效?

我有以下元素:

<script type="text/javascript" src="https://cdn.example.com/js_file.js"></script>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,该站点是HTTPS,但该站点也可能只是HTTP.(JS文件在另一个域上.)我想知道为方便起见,执行以下操作是否有效:

<script type="text/javascript" src="//cdn.example.com/js_file.js"></script>
Run Code Online (Sandbox Code Playgroud)

我想知道是否有效删除http:https:

它似乎适用于我测试过的所有地方,但是有什么情况下它不起作用吗?

html https uri http protocol-relative

455
推荐指数
8
解决办法
11万
查看次数

我可以将所有http://链接更改为//吗?

戴夫沃德说,

它并不完全是轻量级读取,但RFC 3986的4.2节提供了完全限定协议(HTTP或HTTPS)的完全限定URL.当省略URL的协议时,浏览器将使用基础文档的协议.

简而言之,这些"无协议"URL允许这样的引用在您尝试使用的每个浏览器中工作:

//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js

一开始看起来很奇怪,但这种"无协议"URL是引用通过HTTP和HTTPS提供的第三方内容的最佳方式.

这肯定会解决我们在HTTP页面上看到的一堆混合内容错误 - 假设我们的资产可通过HTTP和HTTPS获得.

这是完全跨浏览器兼容吗?还有其他警告吗?

url https http protocol-relative

238
推荐指数
4
解决办法
6万
查看次数

URI以两个斜杠开头......它们的表现如何?

最近我看到像这样工作的代码块:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

根据RFC 2396(URI语法)和RFC 2616(HTTP 1.1),这些以两个斜杠开头的URI是有效的,但不幸的是,RFC并没有真正解释它们.

任何人都可以指向一个解释浏览器将如何/应该/如何处理这些URI的资源?

html uri http protocol-relative

91
推荐指数
3
解决办法
2万
查看次数

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

我看到了//somepage.com/resourceurl格式.例如:

<img src="//remotesite.com/image1.jpg" />
Run Code Online (Sandbox Code Playgroud)

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

我的问题是 - 这种URL格式是否可以安全地用于所有浏览器.它是一个标准吗?

html url web-applications http protocol-relative

80
推荐指数
2
解决办法
3万
查看次数

网络路径参考URI /方案相对URL

方案相对URL(网络路径引用)是我刚刚发现的 - 你没有指定URL的方案,它从当前上下文中选择它.

例如: 如果当前方案是HTTPS或不是,则<img src="//domain.com/img.png" />解析为.https://domain.com/img.pnghttp://domain.com/img.png

这似乎是一种非常简单的方法来解决在SSL页面上调用外部脚本或图像的麻烦问题,而不会引起页面上某些内容不安全的可怕错误.

好处似乎很明显,但我似乎无法找到的是关于此的大量信息,并且想知道是否有人有任何关于方案相对URL(好或坏)的经验或参考?

虽然我试图发现是否有任何浏览器导致问题(我已经成功使用IE6-8,Chrome和Firefox),我也有兴趣了解是否有任何人有使用此功能的不同经验语言.例如,如果你Response.Redirect在ASP中发布一个方案相对URL ,它会起作用吗?

html browser url response.redirect protocol-relative

60
推荐指数
2
解决办法
1万
查看次数

链接以两个斜杠开头

越来越多的人开始注意到网站源代码中的链接以两个斜线开头.例如:

<a href="//example.com/1.png">Image</a>
Run Code Online (Sandbox Code Playgroud)

为什么这样?

html hyperlink protocol-relative

28
推荐指数
1
解决办法
5216
查看次数

通过使用图像源的协议相对URL来防止安全/不安全的错误

是否有人知道使用图像源的协议相对URL来防止混合内容安全警告是否有问题.

例如,链接图像,如:

<img src="//domain.com/img.jpg" />
Run Code Online (Sandbox Code Playgroud)

代替:

<img src="http://domain.com/img.jpg" />
or
<img src="https//domain.com/img.jpg" />
Run Code Online (Sandbox Code Playgroud)

在我的测试中,我没有看到任何暗示这是错误的,但我不确定它是否会产生问题的边缘情况.

编辑我已经看到它在使用PHP的getimagesize函数时抛出错误.

html https image http protocol-relative

13
推荐指数
1
解决办法
4528
查看次数

如何在HTTPS页面上实现Schema.org?

在HTTPS页面上itemtype使用HTTP值(http://schema.org/WebPage)静态设置Microdata的属性是否正确,或者我是否需要https://schema.org/WebPage在所有页面上使用HTTPS值()?

由于站点的HTTP和HTTPS版本都可用,我可以将其设置为//schema.org/WebPage或不是吗?

url https microdata schema.org protocol-relative

10
推荐指数
2
解决办法
1817
查看次数

使用"//"启动网址并省略"http:"会产生什么影响?

可能重复:
绝对URL省略协议(方案)以保留当前页面之一

我最近注意到"like"和"tweet"按钮的嵌入代码不包含http协议.例如:

<script type="text/javascript" src="//platform.twitter.com/widgets.js"></script>

<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=555";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
Run Code Online (Sandbox Code Playgroud)

他们为什么这样做呢?

javascript url http protocol-relative

9
推荐指数
1
解决办法
1208
查看次数

在"Location:"标头中使用协议相对URI

我在PHP手册中注明了以下内容:

HTTP/1.1需要绝对URI作为»Location:包括方案,主机名和绝对路径的参数,但某些客户端接受相对URI.

为了方便用户优先选择HTTPS无处不在的连接,我想改变我的PHP脚本中的标题:

header("Location: http://www.example.com/");header("Location: //www.example.com/");

我已经测试了上面的代码在我的firefox浏览器上工作,但我不确定这是否是可行的事情.或者我是否应该从$_SERVER变量中提取协议并将其放入.

php http http-headers protocol-relative

9
推荐指数
2
解决办法
2895
查看次数