协议相对URL
协议-相对URL是以//开头的URL,而不是http://或https://。用于加载资源的实际协议是从包含的页面派生出来的;因此,HTTPS页面中的//example.com/smile.jpeg将加载https://example.com/smile.jpeg。
反模式索赔
它已经被广泛地宣称协议相关的URL应该被完全抛弃,以支持HTTPS;我最近的一个请求被拒绝了,do声称(最终只接受HTTPS )。
问题所在
网络上许多有信誉的服务仍然使用协议相关的URL。例如,Google调用//www.google-analytics.com/analytics.js,Disqus 呼叫 //EXAMPLE.disqus.com/embed.js。
为什么web服务仍然使用不安全的协议相关URL而不是HTTPS??
发布于 2016-02-20 22:31:47
因为这些服务根本不可能通过HTTP调用?看看IANA-注册URI计划的列表。通过使用协议相对URL,它允许允许相同语法的任何方案加载页面。
相对于页面生成代码或页面模板,协议相关URL还允许在服务器配置中控制方案。如果使用了与协议相关的URL,则可以将Web服务器配置为强制将任何普通的http:请求重定向到https:等效的位置,并且页面模板中的键入或代码不能意外地使用http: (或者如果使用,很容易扫描代码和模板文件并查找所有问题)。
发布于 2016-03-18 15:55:04
如果资产通过https可用,则没有理由使用协议相对URL。指定https本质上比保持开放状态更安全,这为注入不安全的http提供了机会。性能不是原因(ref:https://istlsfastyet.com/)。
您提到的那些服务将切换到仅限于https的协议,这只是时间问题:围绕单个协议/URL进行合并并只提供安全交付的资产符合他们的最佳利益。
https://stackoverflow.com/questions/35529790
复制相似问题