HTTP的Referrer Policy

客户端通过设置Referrer Policy来控制是否在请求头中告知服务端请求来源。来源信息写在生成的请求头的referer中。

注意 Referer 实际上是单词 “referrer” 的错误拼写。Referrer-Policy 这个首部并没有延续这个错误拼写。

Referrer Policy的取值:

  • no-referrer
    整个 Referer 首部会被移除。访问来源信息不随着请求一起发送。
  • no-referrer-when-downgrade
    (默认值)在同等安全级别的情况下,引用页面的地址会被发送(HTTPS->HTTPS),但是在降级的情况下不会被发送 (HTTPS->HTTP)。
  • origin
    在任何情况下,仅发送文件的源作为引用地址。例如https://example.com/page.html 会将https://example.com/ 作为引用地址。
  • origin-when-cross-origin
    对于同源的请求,会发送完整的URL作为引用地址,但是对于非同源请求仅发送文件的源。
  • same-origin
    对于同源的请求会发送引用地址,但是对于非同源请求则不发送引用地址信息。
  • strict-origin
    在同等安全级别的情况下,发送文件的源作为引用地址(HTTPS->HTTPS),但是在降级的情况下不会发送 (HTTPS->HTTP)。
  • strict-origin-when-cross-origin
    对于同源的请求,会发送完整的URL作为引用地址;在同等安全级别的情况下,发送文件的源作为引用地址(HTTPS->HTTPS);在降级的情况下不发送此首部 (HTTPS->HTTP)。
  • unsafe-url
    无论是同源请求还是非同源请求,都发送完整的 URL(移除参数信息之后)作为引用地址。

示例:

当请发起请求的地址为http://localhost:3000/home/?id=1 ,接收请求的地址为http://localhost:8080。
客户端通过fetch发送请求

fetch('http://localhost:8080/getMessage', {
    referrerPolicy: 'no-referrer'
});

服务端收到的请求头分别如下:

  • no-referrer
    在这里插入图片描述
  • no-referrer-when-downgrade
    在这里插入图片描述
  • origin
    在这里插入图片描述
  • origin-when-cross-origin
    在这里插入图片描述
  • same-origin
    在这里插入图片描述
  • strict-origin
    在这里插入图片描述
  • strict-origin-when-cross-origin
    在这里插入图片描述
  • unsafe-url
    在这里插入图片描述

通过上面示例中的结果可以看到所有的请求头中都会带有origin,这是因为测试环境处于CORS跨域状态。
浏览器将CORS请求分为两类:简单请求和非简单请求。
对于简单请求浏览器是直接发出CORS请求,并且会在请求头信息中增加origin字段,表明请求来源。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值