https页面内http链接跳转时的referer问题
一、问题
最近做项目,出现这样个问题,从合作方页面,通过链接跳转我们页面时,referer信息突然获取不到了。
两边代码都没有变更,很奇怪?
二、原因
通过查找,最终发现,原来合作方页面升级为https,而跳转到我方页面的链接为http。简单说,就是https页面内的
http链接。在这种情况下,referer信息是没有的,不会传递。
三、进一步原因
进一步查找,发现在RFC文档(https://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3)内有这
样一段话:
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,那么在非安全http请求时,客户端不应包含referer头部字段。
四、解决方案
原因明了后,那解决方案就明了了。
方法一:升级https,链接地址改为https(同时站点也需支持https)
方法二:https页面添加meta元数据 <meta content="referrer" name="unsafe-url">,这样强制添加referer信息
备注:方法二中meta元数据中的name值,还可为:
no-referrer:即不添加referer信息;
origin:即referer信息只有schema://domain:port,即协议://域名:端口,没有路径信息;
no-referrer-when-downgrade:当协议降级时,不发送referer信息,也就是本文描述的问题,
现大多数浏览器默认的;
origin-when-crossorigin:当跨域时,origin类型的referer,即只有协议://域名:端口,没有路径信息;
unsafe-url:始终发送referer信息。
https页面内http链接跳转时的referer问题相关推荐
- JS 页面内锚点跳转
JS 实现页面内锚点跳转 //平滑的跳转 let element = document.getElementById("id"); if (element) {element.sc ...
- Chrome不允许在页面关闭或导航跳转时发送同步请求
在用户关闭页面,或跳转到其他页面时,需要向服务器发送请求.常规方案是在unload或者beforeunload事件中,使用XMLHttpRequest发送请求. 默认情况下,XHR请求(使用fetch ...
- csdn博客页面内任意自动跳转(附编写截图),自动目录,超链接跳转,MarkDown编辑器(默认编辑器)
文章目录 1.跳转方式 1.1 使用自动目录跳转 1.2 使用超链接跳转 1.2.1 跳转站外网址 1.2.2 跳转本页面任意地方 1.3使用html方式跳转(只能实现预览页跳转,实际跳转会失败) 1 ...
- html怎样同框架页面内跳转,使用iframe框架时,实现子页面内跳转到整个页面,而不是在子页面内跳转...
首先先来描述一下我所遇到的问题,我在一个首页的index.jsp页面中用到了iframe框架,见下图 在iframe中引入jsp页面的路径,是几个iframe框架组合成的一个完整的页面,但是他们的存在 ...
- 点击链接跳转到微信公众号的方法
在项目中需要在微信内通过链接跳转到其他公众号,微信公众号的链接是以下格式 https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=M ...
- H5静态页面跳转微信小程序;从外部浏览器,点击H5链接跳转打开微信小程序;以及在微信内直接点击H5链接打开微信小程序;
参考链接 需求:从外部浏览器,点击H5链接跳转打开微信小程序:以及在微信内直接点击H5链接打开微信小程序: 步骤1: 小程序开发需要使用云开发创建项目,使用云开发生成的项目会自带云函数文件夹: 步骤2 ...
- 微信内打开链接,跳转到公众号关注页面
制作一个链接,点击该链接跳转到公众号关注页面. 1.登录微信公众平台 2.F12 打开开发者工具 >>Elements 3.ctrl+f 搜索 uin_base64 4.将下面链接的__ ...
- android页面跳转时获取地址栏,Android 利用scheme页面内跳转协议进行跳转
什么是 URL Scheme? android中的scheme是一种页面内跳转协议. 通过定义自己的scheme协议,可以非常方便跳转app中的各个页面: 通过scheme协议,服务器可以定制化告诉A ...
- 0005 前端 Html 04 AutoFileName 图片的显示 文字链接 图片链接 页面内链接 列表 加超链接的列表
以下为学习笔记,用来备忘.交流 工具:Sublime Text 3 渲染:谷歌浏览器 AutoFileName工具的安装 安装过程参见添加Emmet插件 参考我上面安装Emmet插件的过程,基本一样. ...
最新文章
- 好理解的Java内存虚假共享(False Sharing)性能损耗以及解决方案
- pymysql dataframe 写入sql
- 1号店11.11:从应用架构落地点谈高可用高并发高性能--转载
- MySQL REGEXP:正则表达式查询
- SecurityManager安全管理器
- python 包和模块的区别_3分钟带你搞懂Python模块、包的区别和使用
- 标题:DKhadoop大数据处理平台监控数据介绍
- 5-10多分支网络结构
- JavaScript创建对象几种形式
- Matlab Tricks(十一)—— 向量的逆序输出
- Eclipse离线安装包下载地址
- 重读浙大版《概率论与数理统计》
- 非功能测试之本地化和国际化测试
- Arduino Uno - 控制4位8段共阴极数码管 显示数字
- CNKI知网查重账号和密码怎么申请
- 使用jQuery实现旋转木马效果
- 【BZOJ 3097】 Hash Killer I
- CSS:transform应用之立体魔方案例
- python处理矩阵运算、转置矩阵、逆矩阵、单位矩阵
- 阿里云无法 git clone 的解决
热门文章
- 戴尔计算机软件方面的成就,笔记本电脑推荐:戴尔全能本成就7000符合年轻商务群体审美 保持高效工作...
- DJYGUI系列文章四:GK文本显示
- 如何拿到别人的ipa包
- Python把变量名取为字符串
- 主窗口(05):【类】QMenuBar [官翻]
- CSS相对定位和绝对定位的区别
- Problem:生日蛋糕
- 计算机应用技术未来方向分析,计算机应用现状及未来方向.doc
- 无人驾驶入门2:高精度地图
- php输出m3u,Jwplayer玩m3u8生成的php