我们都知道,当我们的页面请求一个js文件、一个cs文件或者点击到其他页面,浏览器一般都会给这些请求头加上表示来源的Referrer字段.
Referrer在分析用户的来源时非常有用,比如大家熟悉的百度统计里面就利用到Referrer信息了.
但是遗憾的是,目前百度统计仅仅支持来源于http页面的referrer头信息;也就是说,如果你网站是http的,那么百度统计只能统计到从其他http页面进入到你网站的referrer,而如果是从https页面进入到你的网站,百度统计目前是无法统计到.
在介绍解决办法之前,我们先来了解ReferrerPolicies.
ReferrerPolicies如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop目前存在九种ReferrerPolicies,包括:空字符串、no-referrer,no-referrer-when-downgrade,same-origin,origin,strict-origin,origin-when-cross-origin,strict-origin-when-cross-origin以及unsafe-url:enumReferrerPolicy{"","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin",1/5"unsafe-url"};我们这对每种ReferrerPolicies进行介绍.
空字符串空字符串表示没有referrer策略.
比如我们有一个HTML标签元素,而且并没有声明任何的ReferrerPolicies,这时候的ReferrerPolicies就是空字符串.
默认的空字符串ReferrerPolicies就等同于no-referrer-when-downgrade.
no-referrer最简单的ReferrerPolicies就是no-referrer;这种ReferrerPolicies会导致所有的请求都不带referrer信息.
比如如果https://www.
iteblog.
com/archives/1929页面将ReferrerPolicies设置成no-referrer,那么从这个页面转到https://www.
iteblog.
com/(或者其他任何页面)都不会发送Referer头信息.
no-referrer-when-downgrade这种策略在从受TLS保护的URL跳转到任何潜在可信的URL以及从不受TLS保护的URL(比如HTTP)跳转到任何URL都会发送完整的URLReferrer信息.
但是如果从受TLS保护的URL(比如HTTPS)跳转不受信任的URL(比如HTTP),那么Referrer头将不会带任何的信息.
这是大多数浏览器默认的ReferrerPolicies.
比如:假设https://www.
iteblog.
com/archives/1929页面的ReferrerPolicies设置成no-referrer-when-downgrade,那么从这个页面跳转到任何的https页面将会带上值为https://www.
iteblog.
com/archives/1929的Referer头信息;但是如果从那个页面跳转到任何HTTP页面,将不会带上任何的Referer头信息.
这就是为什么百度统计无法获取到从HTTPS跳转到HTTP的信息.
same-origin对于同源的链接,会发送referrer,其他的不会.
同源意味着域名需要相同,iteblog.
com和idea.
iteblog.
com是非同源的.
origin2/5这种ReferrerPolicies对于任何资源(包括可信和不可信)来说只发送网站的根域名,不发送完整的url.
比如:https://www.
iteblog.
com/archives/1929页面的ReferrerPolicies设置成origin,那么从这个页面跳转到任何网站将会带上值为https://www.
iteblog.
com/的Referer头信息.
strict-origin我们可以把他看做是origin和no-referrer-when-downgrade的结合体.
也就是说,如果从受TLS保护的URL跳转到任何潜在可信的URL以及从不受TLS保护的URL(比如HTTP)跳转到任何URL都会发送根域名的Referrer头信息.
但是如果从受TLS保护的URL(比如HTTPS)跳转不受信任的URL(比如HTTP),那么Referrer头将不会带任何的信息.
比如https://www.
iteblog.
com/archives/1929页面的ReferrerPolicies设置成strict-origin,那么从它跳转到https://xxx.
iteblog.
com将会带上值为https://www.
iteblog.
com/的Referer头信息;如果从那个页面跳转到http://idea.
iteblog.
com将不会带上任何的Referer头信息.
再比如:http://idea.
iteblog.
com页面的ReferrerPolicies设置成strict-origin,那么从这个页面跳转到http://books.
iteblog.
com或者https://www.
iteblog.
com/archives/1929将会带上值为http://idea.
iteblog.
com/的Referer头信息.
不过目前这种ReferrerPolicies浏览器可能不支持.
origin-when-cross-origin该策略在同源的链接中发送完整的URL,其他情况仅发送根域名.
需要注意的是https://www.
iteblog.
com和被认为是非同源的.
比如https://www.
iteblog.
com/archives/1929页面的ReferrerPolicies设置成origin-when-cross-origin,那么从它跳转到https://www.
iteblog.
com/archives/1464将会带上值为https://www.
iteblog.
com/archives/1929的Referer头信息;如果从那个页面跳转到http://idea.
iteblog.
com/页面(注意这里HTTP和HTTPS页面都可以),将会带上值为https://www.
iteblog.
com/的Referer头信息.
不过这种ReferrerPolicies在Chrome实现的时候被误写成了origin-when-crossorigin.
strict-origin-when-cross-origin这种策略可以看做是origin-when-cross-origin和no-referrer-when-downgrade的结合体.
对于同源请求,发送完整的URL;对于同为https的页面,或者是从HTTP页面跳转到任何的页面(包括HTTP和HTTPS)只发送根域名;如果是从https页面跳转到http将不发送referrer.
湖南百纵科技有限公司是一家具有ISP ICP 电信增值许可证的正规公司,多年不断转型探索现已颇具规模,公司成立于2009年 通过多年经营积累目前已独具一格,公司主要经营有国内高防服务器,香港服务器,美国服务器,站群服务器,东南亚服务器租用,国内香港美国云服务器,以及全球专线业务!活动方案:主营:1、美国CN2云服务器,美国VPS,美国高防云主机,美国独立服务器,美国站群服务器,美国母机。2、香港C...
Dynadot 是一家非常靠谱的域名注册商家,老唐也从来不会掩饰对其的喜爱,目前我个人大部分域名都在 Dynadot,还有一小部分在 NameCheap 和腾讯云。本文分享一下 Dynadot 最新域名优惠码,包括 .COM,.NET 等主流后缀的优惠码,以及一些新顶级后缀的优惠。对于域名优惠,NameCheap 的新后缀促销比较多,而 Dynadot 则是对于主流后缀的促销比较多,所以可以各取所...
香港服务器租用多少钱一个月?香港服务器受到很多朋友的青睐,其中免备案成为其特色之一。很多用户想了解香港云服务器价格多少钱,也有同行询问香港服务器的租赁价格,一些实际用户想要了解香港服务器的市场。虽然价格是关注的焦点,但价格并不是香港服务器的全部选择。今天小编介绍了一些影响香港服务器租赁价格的因素,以及在香港租一个月的服务器要花多少钱。影响香港服务器租赁价格的因素:1.香港机房选择香港机房相当于选择...