我抓包看了
1.如果 referer-policy 的值为never:删除 http head 中的 referer;
2.如果 referer-policy 的值为default:如果当前页面使用的是 https 协议,而正要加载的资源使用的是普通的 http 协议,则将 http header 中的 referer 置为空;
3.如果 referer-policy 的值为 origin:只发送 origin 部分;
4.如果 referer-policy 的值为 always:不改变http header 中的 referer 的值,注意:这种情况下,如果当前页面使用了 https 协议,而要加载的资源使用的是 http 协议,加载资源的请求头中也会携带 referer。
参考 http://www.freebuf.com/news/57497.html
以下是知乎上的一位答主的说法
作者:林键 链接:https://www.zhihu.com/question/29523405/answer/88875530
在百度搜索,不管你的目标页面是HTTPS还是HTTP,你都可以获得百度的referer头。
百度搜索给出的结果,其实是一个百度的跳转链接。你点击这个百度的跳转链接后,跳转到目标网站。
1 在用户使用高级浏览器时,百度的跳转链接是HTTPS协议的。
类似:
https://www.baidu.com/link?url=m-pYzY9M2-58hTU9e9734i0xhCYlzHacrag2g7POWEK&wd=&eqid=fb671fd900149caa0000000456d6599b
因为百度的页面增加了
<meta content="always" name="referrer">
标记, 可以让高级浏览器,把HTTPS的referer带给HTTP的页面。
2 在旧的浏览器下,百度的跳转链接是HTTP协议的。
类似:
http://www.baidu.com/link?url=m-pYzY9M2-58hTU9e9734i0xhCYlzHacrag2g7POWEK&wd=&eqid=fb671fd900149caa0000000456d6599b
HTTP页面当然可以把 HTTP的referer带给下一个页面。
针对此现象我的理解是:百度首先保证referer能够传递给目标网站,然后尽可能使用HTTPS保护自己的内容。