协议(protocol)相关 URL
Protocol-relative URLs是以 //
开头的 URL,而不是 http://
或 https://
。用于加载资源的实际协议(protocol)源自包含页面;因此,HTTPS 页面中的 //example.com/smile.jpeg
将加载 https://example.com/smile.jpeg
。
反模式声明
It has been widely claimed应完全放弃与协议(protocol)相关的 URL,转而使用 HTTPS;我最近的一个拉取请求被拒绝了(最终仅通过 HTTPS 被接受)。
问题
网络上许多信誉良好的服务仍然使用协议(protocol)相关 URL。例如,Google Analytics 调用 //www.google-analytics.com/analytics.js
和 Disqus calls //EXAMPLE.disqus.com/embed.js
。
Web 服务仍然使用不安全的协议(protocol)相关 URL 而不是 HTTPS,这是否有原因?
最佳答案
因为服务可能根本不通过 HTTP 调用?看看IANA-registered URI schemes的列表。通过使用协议(protocol)相关 URL,它允许通过任何允许相同语法的方案加载页面。
与协议(protocol)相关的 URL 还允许在服务器配置中控制方案,而不是在页面生成代码或页面模板中进行。如果使用协议(protocol)相关 URL,则可以将 Web 服务器配置为强制将任何纯 http:
请求重定向到 https:
等效项,并且页面模板或代码中的拼写错误可能会发生不要意外使用 http:
(或者如果使用了,很容易扫描代码和模板文件并找到所有出现的问题)。
关于google-analytics - 是否存在协议(protocol)相关 URL 优于 HTTPS 的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35529790/