https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Referer
referer表示,当前页面是通过此来源页面里的链接进入的,

  • Referer 请求头包含了当前请求页面的来源页面的地址
  • 服务端一般使用 Referer 请求头,识别访问来源,以此进行统计分析、日志记录以及缓存优化等。
  • Referer 请求头可能暴露用户的浏览历史,涉及到用户的隐私问题

Referer使用场景

服务端一般使用 Referer 请求头

  1. 识别访问来源
  2. 进行统计分析、日志记录、缓存优化、异常访问等

referer 当前页面被链接而至的前一页面的绝对路径或者相对路径
不包含

origin

HTTP 协议中,Header头的 Origin 和 Referer 都用来表示,请求链接的来源,区别

  1. origin 表示 请求来自于哪个站点
    1. 只有服务器名,不包含路径信息,浏览器自动添加到http请求 Header 中,无需手动设置
    2. 同源请求:POST、OPTIONS、PUT、PATCH 和 DELETE请求都会添加Origin请求头
    3. GET或HEAD请求不会添加 Origin请求头
    4. 跨域请求:所有跨域请求(CORS)都会添加Origin请求头
  2. referer表示 请求来自于哪个具体页面,
    1. 包含服务器名和路径的详细URL,浏览器自动添加到http请求 Header 中,
    2. 无需手动设置
    3. 不会添加 referer的场景
      1. 来源页面采用 file 或 data URI 协议;
      2. 来源页面采用 HTTPS 协议,而请求页面采用 HTTP 协议
    4. 服务端一般使用 Referer 请求头识别访问来源,进行统计分析、日志记录、缓存优化、异常访问等

image.png

referer 和 origin的区别
https://learn-anything.cn/http-origin-refer

nodejs获取 referer

koa2

  1. req.headers.referer

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Referrer-Policy

no-referrer

整个 Referer 首部会被移除。访问来源信息不随着请求一起发送,常用语 a href

  1. <a href="" target="_blank" rel="noreferrer nofollow">

https://stackoverflow.com/questions/50773152/when-should-i-use-rel-noreferrer