Referer字段丢失问题

当从HTTPS页面跳转到HTTP页面时,HTTP Referer字段通常不会被传递,导致大数据埋点丢失来源信息,影响业务数据采集。虽然可通过设置HTML meta标签让浏览器携带Referer,但这并非所有浏览器都支持的标准行为。Referer主要用于告知服务器用户是从哪个页面来的,但在某些情况下,如鼠标拖拽、Flash链接及HTTPS到HTTP的跳转,Referer可能会丢失或不被发送。
摘要由CSDN通过智能技术生成

HTTP协议规定:

Clients SHOULD NOT include a Referer header field in a (non-secure) HTTP request if the referring page was transferred with a secure protocol.

https://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3


15.1.3 Encoding Sensitive Information in URI's

Because the source of a link might be private information or might reveal an otherwise private information source, it is strongly recommended that the user be able to select whether or not the Referer field is sent. For example, a browser client could have a toggle switch for browsing openly/anonymously, which would respectively enable/disable the sending of Referer and From information.

Clients SHOULD NOT include a Referer header field in a (non-secure) HTTP request if the referring page was transferred with a secure protocol.

`Referer` 字段(通常写作 `Referer`,而不是 `referer`)是 HTTP 请求头的一部分,用于标识请求来源页面的地址。它通常用于网站统计、日志分析、防止内容盗链等用途。要开启或设置 `Referer` 字段,通常需要由客户端(例如Web浏览器)或服务器端的配置决定。 对于浏览器端,大多数现代浏览器默认会发送 `Referer` 字段,但用户可以在浏览器的隐私设置中关闭它,或者在某些浏览器的特定模式下(如隐私模式/无痕模式)不发送 `Referer` 字段。如果你需要在浏览器端手动设置或确保 `Referer` 字段被发送,你需要检查浏览器的设置。 对于服务器端,如果你是网站开发者或服务器管理员,可以在服务器配置中设置是否发送 `Referer` 字段。以Apache服务器为例,可以通过修改`.htaccess`文件或服务器配置文件来控制是否发送 `Referer` 字段。以下是一个简单的示例配置,用于Apache服务器,在此配置下,服务器将不发送 `Referer` 字段: ```apache <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteRule .* - [E=NO REFERER:%{HTTP_REFERER}] </IfModule> Header set Referrer-Policy "no-referrer" ``` 在这个示例中,`RewriteCond` 指令用于检查 `HTTP_REFERER` 是否存在,如果存在,则设置环境变量 `NO REFERER`。`RewriteRule` 指令实际上没有改变任何东西,但它可以用来触发一些基于环境变量的逻辑。`Header` 指令用于设置 HTTP 响应头 `Referrer-Policy`,在此例中设置为 `no-referrer`,这意味着浏览器不会发送 `Referer` 字段。 请注意,出于安全和隐私考虑,有时关闭 `Referer` 字段是有益的。服务器端的设置可能会因服务器软件的不同而有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值