Referrer策略

Referrer简介:

在流量监测中,访客的来源信息是一个很重要的信息,包括访客的访前链接,以及搜索关键词。在HTTP请求中有一个referrer标签,用来指明当前流量的来源参考页。例如在http://www.bitauto.com/上点击一个链接到达www.taoche.com首页,那么就referrer就是http://www.bitauto.com/了。在Javascript中,我们可以通过document.referrer来获取同样的信息。通过这个信息,我们就可以知道访客是从什么渠道来到当前页面的。这对于网站分析来说,是非常重要的,这可以告诉我们不同渠道带来的流量的分布情况,还有用户搜索的关键词等,都是通过分析这个referrer信息来获取的。

请求中丢失Referrer信息的几种场景:

  1. 直接流量:访客是通过直接键入地址,进入网页的,这种情况产生的流量属于直接流量,直接流量的请求中没有referrer信息的。
  2. 点击Flash内部链接:如果是通过投放的falsh广告到的本站的话,通过访前链接查询流量就是非常不准确的了。
  3. HTTPS跳转到HTTP:从HTTPS的网站跳转到HTTP的网站时,浏览器是不会发送referrer的。

Referrer信息的丢失使得相对不那么准确的流量数据更加不可琢磨了,也为我们的广告流量监测带来困扰。很多流量统计工具会因此将这部分流量归入“直接流量”,和用户直接键入网址等价了。

希望浏览器不发送referer头的场景:

Referrer策略用于控制浏览器在何种情况下发送referrer信息。该策略可以保护用户的隐私,但也可以使得目前绝大多数站点的防盗链机制失效。

  1. 隐私:一个社交网站会有每个用户的简介页面,用户会在他们的个人主页中添加一些链接。社交网站可能不希望泄露用户的个人主页URL给被链接的网站(因为个人主页URL可能会泄露其主人的身份信息)。
  2. 安全:一个网站应用使用https和基于URL的会话标识。应用也许希望链接其他站点的https资源但不想泄露位于URL中的用户会话标识符。
  3. 引用:基于HTTPS的博客可能希望连接到一个HTTP上的博客并收到引用链接

referrer策略

1.Referrer策略包含以下值:

  • 空字符串
  • no-referrer
  • no-referrer-when-downgrade
  • same-origin
  • origin
  • strict-origin
  • origin-when-cross-origin
  • strict-origin-when-cross-origin
  • unsafe-url

2.下面简单介绍下每种Referrer策略。

  1. .no-referrer:表示所有的请求都不带referrer。
  2. .no-referrer-when-downgrade:主要针对于受TLS保护的URL(如https),简单的说就是https的页面中,当连接的资源也是https的,则发送完整的referrer,如果连接的资源是http的,就不发送referrer。
  3. same-origin:对于同源的链接,会发送referrer,其他的不会。
  4. origin:这个策略对于任何资源来说只发送源的信息,不发送完整的url。
  5. strict-origin(浏览器可能不支持):这个策略类似于origin和no-referrer-when-downgrade的合体,如果一个https页面中链接到http的页面或资源,则不会发送referrer。http页面链接以及https链接到https都只发送来源页面的源信息。
  6. origin-when-cross-origin:该策略在同源的链接中发送完整的URL,其他情况仅发送源信息。
  7. strict-origin-when-cross-origin(浏览器可能不支持):对于同源请求,发送完整的URL;对于同为https的,只发送源信息;对于http页面只发送源信息;https页面中的http请求不发送referrer。
  8. unsafe-url:这个主要是解决https页面中的http资源不发referrer的问题,它会使在https页面中http资源发送完整的referrer。
  9. 空字符串:表示没有referrer策略,默认为no-referrer-when-downgrade。

3.用法:

Referrer策略可以通过以下方法声明:

  • 通过http请求头中的Referrer-Policy字段
  • 通过meta标签,name为referrer
  • 通过<a>、<area>、<img>、<iframe>、<link>元素的referrerpolicy属性。
  • 通过<a>、<area><link>元素的rel=noreferrer属性
  • 通过隐式继承

4.用法举例:

1.http请求头
Referrer-Policy: no-referrer
2.meta标签
<meta name=”referrer” content=”no-referrer” />
3.referrerpolicy属性
<a href=“http://example.com” referrerpolicy=“origin”>
4.rel=noreferrer属性

 

 

 

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值