vzw*_*ick 201

"两个正斜线"是"现在正在使用的任何协议"的常用简写.

最有名的是"协议相对URL",当元素(例如示例中的JS文件)可以从一个http或一个https上下文加载时,它们特别有用.通过使用协议相对URL,您可以避免实现

if (window.location.protocol === 'http:') {
    myResourceUrl = 'http://example.com/my-resource.js';
} else {
    myResourceUrl = 'https://example.com/my-resource.js';
}
Run Code Online (Sandbox Code Playgroud)

在你的代码库的逻辑类型(假设,当然,这在服务器example.com能够同时通过服务资源httphttps).

一个突出的现实世界的例子是Magento电子商务引擎:出于性能原因,商店的页面http默认使用plain ,而结帐已https启用.

当非协议相对URL(即http://example.com/banner.jpg)引用硬编码资源(即网站标题中的促销横幅)时,达到https启用结帐的客户将受到相当不友好的欢迎

"这个页面上有不安全的元素"

提示 - 正如你可以想象的那样,将普通的非技术娴熟的人抛弃了.

如果通过//example.com/banner.jpg虽然引用了上述资源,浏览器会负责预先设置正确的协议.

tl; dr:即使是混合的http/https环境的最轻微的可能性,只需使用双斜杠/协议相对URL来加载资源 - 假设提供内容的主机同时启用了http和https.

  • @mckoss:如果文件位于同一个域中,则单个斜杠效果很好.当然,我可以通过引用`/ resource.jpg`获取`http(s):// mydomain.com/resource.jpg`.对于`http(s):// some-other-dudes-domain.com/other-resource.jpg`,单斜杠显然不起作用. (12认同)
  • 是的,但为什么不是一个斜线?这不是一样的吗? (5认同)
  • @Pacerier - 至少从[RFC 3986](http://tools.ietf.org/html/rfc3986#section-4.2)开始标准化,所以2005-ish.也可能以前工作过. (2认同)

Rad*_*gut 11

它将自动添加https或http,具体取决于请求的生成方式.

  • 值得注意的是,这不仅会填充http或https,还会填充浏览器支持的任何其他协议.以FTP为例.它告诉浏览器使用正在使用的相同协议.(抱歉对旧帖发表评论!) (9认同)

归档时间:

查看次数:

58786 次

最近记录:

11 年 前