it-swarm.dev

浏览器支持以双斜杠开头的URL

我最近看到一些没有协议的链接。它似乎并不太难理解 - 我认为这是一个好主意,非常直观。

对于那些不知道的人,使用像//example.com/script.js这样的URL将指向http://example.com/script.jshttps://example.com/script.js,具体取决于URL是否来自 http https URL。例如,包含来自https页面的http脚本或图像可能是一个安全问题,因此这解决了这一问题,而无需在代码中进行协议检测。

我的问题是,它有什么样的浏览器/操作系统支持?在生产中使用是否安全?这肯定会让事情变得容易一些。

简单的例子和​​测试: http://codetester.org/916c6916

编辑:只是一个跟进,我已经使用这个为我公司的广告服务器生产许多东西,现在几年没有问题。

99
dtbarne

这种行为是 RFC 1808 (第4节)的一部分,大约有16年的历史,所以每个主要的浏览器应该(并且确实)支持这一点。

可悲的是,如果在link@import上使用协议相对URL,那么 IE7和-8 的一个错误将使他们下载资源两次 - 这应该不是一个大问题,但是很难看并应牢记在心。

83
oezi

如果您在本地计算机上进行开发,则可能会因src="file://Host.com/filename".而失败

在这种情况下,您需要明确指定方案:http://Host.com/filenamehttps://Host.com/filename

2
Matas Vaitkevicius