使用协议相对的URL作为图像源,以防止安全/不安全错误。

13

你知道使用协议相对URL作为图像源以避免混合内容安全警告是否存在问题吗?

例如,像这样链接一个图像:

<img src="//domain.com/img.jpg" />

而不是:

<img src="http://domain.com/img.jpg" />
or
<img src="https//domain.com/img.jpg" />

在我的测试中,我没有看到任何迹象表明这是错误的,但我不确定它是否有边缘情况会导致问题。 编辑 我看到在使用PHP的getimagesize函数时会抛出错误。
3个回答

14

发现了一个关于协议相对URL使用的有趣陷阱:

你必须小心地只在用于浏览器的页面中使用此语法。如果将其放在电子邮件中,将没有基础页面URL可用于解析相对URL。至少在 Outlook 中,这个 URL 将被解释为 Windows 网络文件,而不是你想要的内容。

摘自这里

但实质上,只要请求是由浏览器而不是外部电子邮件客户端发出的,就没有任何有效的理由导致它不能正常工作。

更多信息请参见这里

不带计划(http: 或 https:)的相对 URL 是有效的,符合 RTF 3986:第 4.2 节。如果客户端无法处理它,那么问题在于客户端没有遵守 RFC 中指定的 URI 语法。

你的例子是有效的,应该可以正常工作。我在大量访问量的网站上也使用过这种相对 URL 方法,并且没有任何投诉。此外,我们在 Firefox、Safari、IE6、IE7 和 Opera 中测试我们的网站。这些浏览器都理解这种 URL 格式。


3

如果您使用协议相对URL,IE 7和IE 8将会下载样式表两次。如果您只是用它“作为图像源”,那么这不会影响您,但以防万一,请注意。


0

在使用协议相对URL时,应考虑以下几点:

1)所有现代浏览器都支持此功能。

2)我们必须确保所请求的资源可以通过HTTP和HTTPS访问。如果HTTP重定向到HTTPS,则可以正常使用,但是加载时间会比直接请求HTTPS稍长一些。

3)Internet Explorer 6不支持此功能。

4)Internet Explorer 7和8支持此功能,但如果将协议相对URL用于CSS文件,则会下载样式表两次。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接