Protocol-relative URLs是以//
开头的网址,而不是http://
或https://
。用于加载资源的实际协议是从包含页面派生的;因此,HTTPS页面中的//example.com/smile.jpeg
将加载https://example.com/smile.jpeg
。
It has been widely claimed应该完全放弃使用HTTPS的协议相对URL;我最近的拉取请求之一被拒绝了(并且最终仅通过HTTPS接受)。
网上许多声誉良好的服务仍然使用协议相对URL。例如,Google Analytics会调用//www.google-analytics.com/analytics.js
和Disqus calls //EXAMPLE.disqus.com/embed.js
。
Web服务是否仍然使用不安全的协议相对URL而不是HTTPS?
答案 0 :(得分:2)
因为可能根本没有通过HTTP调用服务?看一下IANA-registered URI schemes的列表。通过使用协议相对URL,它允许任何允许相同语法的方案加载页面。
协议相对URL还允许在服务器配置中控制方案,而不是页面生成代码或页面模板。如果使用协议相对URL,则可以将Web服务器配置为强制将任何普通http:
请求强制重定向到页面模板中的https:
等效和拼写错误,否则代码不会意外使用http:
(或者,如果他们这样做,很容易扫描代码和模板文件,并找到所有出现的问题)。
答案 1 :(得分:1)
如果资产可通过https获得,则没有理由使用协议相对URL。指定https本身比保持开放性更安全,这为不安全的http注入提供了机会。表现不是原因(参考:https://istlsfastyet.com/)。
您提到的这些服务只会转换为仅使用https的协议,这只是时间问题:为了整合单个协议/网址并仅提供安全交付的资产,这符合他们的最佳利益。