返回列表 发布新帖
查看: 18|回复: 0

Referer 是什么?一篇彻底讲清楚的文章

发表于 前天 17:08 | 查看全部 |阅读模式

这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在网站运维和前端开发中,你一定经常听到 Referer(来源页) 这个词。它通常用于 防盗链、统计分析、跳转追踪、安全策略 等场景。那么 Referer 到底是什么?它对我们有什么意义?本文一次性讲清楚。
一、Referer 的定义
Referer 是 HTTP 请求头的一部分,用来标识“当前请求从哪个页面跳转过来”。
当用户点击一个链接、加载图片、加载脚本、跳转页面时,浏览器会自动把当前页面的 URL 写入 Referer 字段内,然后发送给目标服务器。
示例:
当网页 A 中引用图片 B:
<img src="https://img.example.com/a.jpg">
浏览器请求 a.jpg 时会携带:
也就是说:
Referer 告诉服务器:这次资源请求来自于哪里。
二、Referer 能做什么?
1. 防盗链(最常见场景)
很多 CDN、对象存储(OSS)、图片服务器会通过 Referer 判断:
  • 来请求资源的域名是不是我允许的?
  • 是白名单?还是黑名单?
  • 是我自己的网站?还是别的网站盗链我资源?
例如:
你可以设置:
  • 允许 www.example.com
  • 拒绝其他所有域名
  • 这样其他网站就不能直接引用你的图片、视频等资源。
2. 统计来源
网站分析工具根据 Referer 做:
  • 流量来源统计(百度来的?谷歌来的?微信来的?)
  • 推广渠道识别
  • 导流效果监控
例如 Referer 是:
https://www.google.com/search?q=xxx
你就知道用户来自 Google 搜索。
3. 安全策略
Referer 可以用于安全校验,例如:
  • 判断请求是不是通过正常页面流程触发
  • 防止 CSRF(跨站请求伪造)
  • 检测非法跳转
不过注意,Referer 可以被伪造,所以不能作为唯一安全判断依据。
三、Referer 可能为空(非常重要)
Referer 不是一定存在,浏览器在某些条件下不会发送 Referer,例如:
  • 从 HTTPS 跳转到 HTTP(为了保护隐私)
  • 页面设置了 Referrer-Policy(如 no-referrer)
  • 直接输入网址访问
  • 右键"在新标签页打开"
  • 用某些浏览器隐私模式
  • 请求被中间代理清洗掉头信息
因此 不能完全依赖 Referer 做精准安全判断。
四、Referrer(正确拼写) vs Referer(错误拼写)
正确英文单词应是 Referrer,但 HTTP 标准里拼错成了 Referer。
结果是:
  • 全世界所有 Web 服务器、浏览器都延续这个“错别字”
  • HTTP 规范也保持“Referer”作为正式字段名字
所以:
HTTP 头:Referer
新标准(Referrer Policy):Referrer-Policy
两个词并存,但都在使用。
五、Referer 在防盗链中的应用示例
白名单写法示例(以 CDN 为例)
  • www.example.com
  • *.example.com
规则意思:
  • 允许主域名
  • 允许所有子域名
  • 开启防盗链后,其他域名引用你的图片就会被阻止。
黑名单示例
  • badweb.com
  • *.evil.com
表示拒绝这些网站引用你的资源。
六、如何查看 Referer?
你可以用浏览器开发者模式查看:
打开 F12 → Network
点击任意请求
左侧"Request Headers"里会看到 Referer
七、总结
内容说明
Referer 是什么?请求来源页面的 URL
浏览器自动携带?
常见用途防盗链、流量统计、安全校验
可以为空?是(常见情况)
为什么拼错?HTTP 规范历史遗留问题
能被伪造?可以
一句话总结:
Referer 是网站判断“你从哪里来”的依据,也是防盗链最依赖的来源信息。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2025 Suike Tech All Rights Reserved. 随客交流社区 (备案号:津ICP备19010126号) |Processed in 0.108085 second(s), 7 queries , Gzip On, MemCached On.
关灯 在本版发帖返回顶部
快速回复 返回顶部 返回列表