HTTP Referer (HTTP Referer)

Referer 的作用

Referer 头部字段的主要作用包括:

  • 统计分析: 服务器可以使用 Referer 信息来追踪用户访问路径,了解用户如何到达网站的各个页面。这对于网站分析非常重要,可以帮助网站所有者了解哪些链接带来了流量,哪些页面是热门入口等。
  • 安全控制: 服务器可以根据 Referer 信息来限制访问,例如,防止未经授权的图片盗链。通过检查 Referer 是否来自允许的域名,服务器可以确保资源不被其他网站非法引用。
  • 优化用户体验: 网站可以根据 Referer 信息来提供个性化的用户体验,例如,在用户从搜索引擎访问时,提供相关的搜索结果。

Referer 的工作原理

当用户点击一个链接或提交一个表单时,浏览器会向目标服务器发送一个 HTTP 请求。在请求的头部信息中,就会包含 Referer 字段。该字段的值是用户来源页面的 URL。需要注意的是,如果用户直接在地址栏中输入 URL 访问页面,或者使用了 HTTPS 访问页面,那么 Referer 字段可能不会被发送,出于隐私保护的考虑,浏览器有时也会选择不发送 Referer 信息。

Referer 与 Referrer-Policy

现代浏览器引入了 Referrer-Policy 头部字段,允许网站更精细地控制 Referer 信息的发送方式。Referrer-Policy 提供了多种选项,包括:

  • no-referrer:不发送 Referer 信息。
  • no-referrer-when-downgrade:在从 HTTPS 页面跳转到 HTTP 页面时不发送 Referer 信息。
  • origin:只发送来源域,不发送路径信息。
  • origin-when-cross-origin:跨域请求时只发送来源域,同域请求时发送完整的 URL。
  • same-origin:对于同源请求发送完整的 URL,跨域请求不发送 Referer 信息。

通过设置 Referrer-Policy,网站可以更好地保护用户的隐私,并控制 Referer 信息的敏感程度。

Referer 的常见误解

一个常见的误解是,Referer 字段一定准确地反映了用户的访问路径。然而,由于各种原因,例如用户设置、浏览器设置或中间代理,Referer 信息可能并不完全准确。因此,服务器在依赖 Referer 信息时,应该考虑其局限性

结论

Referer 头部字段是 HTTP 协议中一个重要的组成部分,它为网站提供了关于用户访问路径的信息。虽然 Referer 在网站分析和安全控制方面起着重要作用,但开发者也应该了解其局限性,并结合 Referrer-Policy 来更好地保护用户隐私和提升网站的安全性。

参考资料