其实是我最近在写一个chrome插件,其中希望在请求一个图片地址的时候不带referrer信息以此来避开图片资源服务器的防盗链机制。
<meta name="referrer" content="never">
但是我遇到了一个问题,当我设置了如上标签之后,
假设我使用img来请求地址,是不会带上referrer信息的
<img src={this.props.avatarSrc} alt=""/> // 正常
// 请求中的 referer policy 为 no-referrer
但是一旦我转换成用背景图片的方式
<span className="avatar" style={{backgroundImage:`url(${this.props.avatarSrc})`}}></span>
// 发出请求会带上referer
// 同时 请求中的referer policy 变更为 no-referrer-when-downgrade
查询了以下似乎意思是当降级为http请求的时候不加referrer,经过我的尝试,降级为普通http请求似乎也没有生效
所以我的问题就是为何这两种HTTP请求对于referer的差异为何为这么大呢? 其原因在于什么?
::后续更新,我发现在火狐浏览器下两种方式都是OK的,只有在chrome下才会被强制带上referrer
我也遇到这个问题
html heade添加了
<meta name="referrer" content="no-referrer">
css里面的图片无效,img的图片是没有带referrer的,如你所说这个这种情况chrome是这样的,firefox是都没有referrer.
坑。
no-referrer-when-downgrade是默认值,在没有指定任何策略的情况下用户代理的默认行为。在同等安全级别的情况下,引用页面的地址会被发送(HTTPS->HTTPS),但是在降级的情况下不会被发送 (HTTPS->HTTP)。