初识HTTP中的Referer
这段时间的一个项目中需要记录PV级的用户访问信息,为了让这个功能实现尽量和现在系统代码少耦合,所以采用了在前端页面嵌入js的方案,被记录的信息中有一条就是:被访问页面的来源URL,也即从哪个页面跳转过来的;
HTTP Referer就是用来干这件事的,该值在服务端和客户端都能取到;服务端直接从request中读取,当然不同语言读取的方式不一样;客户端js的读取方式为document.referrer;
关于HTTP Referer使用非常简单,使用场合比较多的是用于页面统计、图片防盗链(可以在apache中进行设置,从非自己domain或空Referer过来的请求一律拒绝)等;但还是有一点值得注意:Referer是不安全的,客户端可以通过设置改变Request中的值,尽量不要用来进行安全验证等方面;下面介绍下默认情况下Referer可能出现为空的场景:
1、页面从Https跳转到Http;应该是处于安全考虑,该点在RFC-2616中有说明;主流浏览器均遵守这个规则,比如IE、FF;但默认情况下Https到Https是会发送Referer的;
2、直接在浏览器中输入目标URL;
3、由于FF提供了很强大的自定义参数设置功能,所以我们可以通过about:config页面修改以下两个选项的默认设置:
network.http.sendRefererHeader (default=2)
设置Referer的发送方式,0为完全不发送,1为只在点击链接时发送,在访问页面中的图像什么的时候不发送,2为始终发送。
network.http.sendSecureXSiteReferrer (default=true)
设置从一个Https访问到另外Https页面的时候是否发送Referer,true为发送,false为不发送。
初识HTTP中的Referer相关推荐
- option:contains后面加变量_Python基础篇 -2:初识Python中的变量
Python学习基础篇 -2 前言:本专栏以Python为主题,并尽可能保持每星期两到三更,直到将Python的基础知识浅析和讲解完毕,同时,有一定基础的同学可以移步 Python实战专栏 . 第二篇 ...
- 初识Flutter中的Layer
初识Flutter中的Layer 开篇 接触Flutter开发一段时间后发现自己对Flutter渲染流程重要的一环Layer的认知比较少,虽然Flutter对Widget的封装非常全面了开发者基本上只 ...
- linux 内核 input,初识linux中的input设备
原标题:初识linux中的input设备 究竟何谓input设备,相信市场上卖宠物小狗的大妈都能一口答出来,你能不知道么?对,就是我们传说中的输入设备.说到输入设备,相信用过电脑的兄弟都不会陌生了,即 ...
- TWebbrowser 中设置referer
使用 TWebbrowser 控件的时候如果设置了referer的值,Web服务器就可以更好的统计http请求的地址.这在广告系统中经常用到. Delphi中是这样设置的 procedure TFor ...
- RSocket协议初识-Java中使用(二)
前言 在RSocket协议初识(一)中我们使用SpringBoot创建了简单的RSocket通讯模型,本篇我们将介绍纯Java使用Demo.本文代码参照官网的rsocket-java/examples ...
- 获取referer中的请求参数_Http请求头中的referer
Referer是 HTTP请求header 的一部分,当浏览器(或者模拟浏览器行为)向web 服务器发送请求的时候,头信息里有包含 Referer.比如我在www.google.com 里有一个www ...
- 网站中对referer的应用
在开发中对一个外链网站做了iframe 然后出现的都是乱码.经过研究过后原来是设置了 <metaname="referrer"content="never" ...
- 判断request请求头中的referer实现的防盗链操作
通俗的来讲,跨站访问资源,被称为盗链.比如某一个商业网站,有很多自主版权的图片,自身展示用于商业目的.而另一个没有版权的网站,希望在自己的网站上面也展示这些图片,直接使用超链接到有版权的网站,这样以来 ...
- HTTP请求中的Referer和Referrer Policy
Referer Referer请求头包含了当前请求页面的来源页面的地址,即表示当前页面是通过此来源页面里的链接进入的.服务端一般使用Referer(注:正确英语拼写应该是referrer,由于早期HT ...
最新文章
- Ubuntu 查看隐藏的文件
- 浏览器输入「xxxxhub」的背后.....
- linux libffi 简介 高级语言互调库
- Django之路--第一篇
- ami编码设计流程图_Openplant智慧电厂BIM设计-很强大(艾三维BIM分享)
- echart单击后获取横坐标值_echart 横坐标倾斜
- Failed to get response from /vue-cli-version-marker
- 新服务器安装和配置zabbix的playbook
- 【渝粤教育】电大中专职业生涯规划 (3)作业 题库
- 语言坐标度分秒的换算_测量位置度说明
- 计算机设备故障类型有哪些,计算机硬件故障有哪些
- 【跃迁之路】【429天】程序员高效学习方法论探索系列(实验阶段186-2018.04.10)...
- NAT网络映射设置:允许局域网用户访问VMWare内linux的SSH
- 安全使用计算机习惯,如何安全使用计算机和互联网
- java byte与char互转原理
- 实验楼与蓝桥网站合并 FAQ
- linux设置r语言环境,R语言 环境设置
- python xlwt图表_python自动化办公(3)——Excel一键创建图表
- HW - VCN 介绍
- 计算机中文核心期刊-概述一二