一、问题

最近做项目,出现这样个问题,从合作方页面,通过链接跳转我们页面时,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问题相关推荐

  1. JS 页面内锚点跳转

    JS 实现页面内锚点跳转 //平滑的跳转 let element = document.getElementById("id"); if (element) {element.sc ...

  2. Chrome不允许在页面关闭或导航跳转时发送同步请求

    在用户关闭页面,或跳转到其他页面时,需要向服务器发送请求.常规方案是在unload或者beforeunload事件中,使用XMLHttpRequest发送请求. 默认情况下,XHR请求(使用fetch ...

  3. csdn博客页面内任意自动跳转(附编写截图),自动目录,超链接跳转,MarkDown编辑器(默认编辑器)

    文章目录 1.跳转方式 1.1 使用自动目录跳转 1.2 使用超链接跳转 1.2.1 跳转站外网址 1.2.2 跳转本页面任意地方 1.3使用html方式跳转(只能实现预览页跳转,实际跳转会失败) 1 ...

  4. html怎样同框架页面内跳转,使用iframe框架时,实现子页面内跳转到整个页面,而不是在子页面内跳转...

    首先先来描述一下我所遇到的问题,我在一个首页的index.jsp页面中用到了iframe框架,见下图 在iframe中引入jsp页面的路径,是几个iframe框架组合成的一个完整的页面,但是他们的存在 ...

  5. 点击链接跳转到微信公众号的方法

    在项目中需要在微信内通过链接跳转到其他公众号,微信公众号的链接是以下格式 https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=M ...

  6. H5静态页面跳转微信小程序;从外部浏览器,点击H5链接跳转打开微信小程序;以及在微信内直接点击H5链接打开微信小程序;

    参考链接 需求:从外部浏览器,点击H5链接跳转打开微信小程序:以及在微信内直接点击H5链接打开微信小程序: 步骤1: 小程序开发需要使用云开发创建项目,使用云开发生成的项目会自带云函数文件夹: 步骤2 ...

  7. 微信内打开链接,跳转到公众号关注页面

    制作一个链接,点击该链接跳转到公众号关注页面. 1.登录微信公众平台 2.F12 打开开发者工具 >>Elements 3.ctrl+f  搜索 uin_base64 4.将下面链接的__ ...

  8. android页面跳转时获取地址栏,Android 利用scheme页面内跳转协议进行跳转

    什么是 URL Scheme? android中的scheme是一种页面内跳转协议. 通过定义自己的scheme协议,可以非常方便跳转app中的各个页面: 通过scheme协议,服务器可以定制化告诉A ...

  9. 0005 前端 Html 04 AutoFileName 图片的显示 文字链接 图片链接 页面内链接 列表 加超链接的列表

    以下为学习笔记,用来备忘.交流 工具:Sublime Text 3 渲染:谷歌浏览器 AutoFileName工具的安装 安装过程参见添加Emmet插件 参考我上面安装Emmet插件的过程,基本一样. ...

最新文章

  1. 好理解的Java内存虚假共享(False Sharing)性能损耗以及解决方案
  2. pymysql dataframe 写入sql
  3. 1号店11.11:从应用架构落地点谈高可用高并发高性能--转载
  4. MySQL REGEXP:正则表达式查询
  5. SecurityManager安全管理器
  6. python 包和模块的区别_3分钟带你搞懂Python模块、包的区别和使用
  7. 标题:DKhadoop大数据处理平台监控数据介绍
  8. 5-10多分支网络结构
  9. JavaScript创建对象几种形式
  10. Matlab Tricks(十一)—— 向量的逆序输出
  11. Eclipse离线安装包下载地址
  12. 重读浙大版《概率论与数理统计》
  13. 非功能测试之本地化和国际化测试
  14. Arduino Uno - 控制4位8段共阴极数码管 显示数字
  15. CNKI知网查重账号和密码怎么申请
  16. 使用jQuery实现旋转木马效果
  17. 【BZOJ 3097】 Hash Killer I
  18. CSS:transform应用之立体魔方案例
  19. python处理矩阵运算、转置矩阵、逆矩阵、单位矩阵
  20. 阿里云无法 git clone 的解决

热门文章

  1. 戴尔计算机软件方面的成就,笔记本电脑推荐:戴尔全能本成就7000符合年轻商务群体审美 保持高效工作...
  2. DJYGUI系列文章四:GK文本显示
  3. 如何拿到别人的ipa包
  4. Python把变量名取为字符串
  5. 主窗口(05):【类】QMenuBar [官翻]
  6. CSS相对定位和绝对定位的区别
  7. Problem:生日蛋糕
  8. 计算机应用技术未来方向分析,计算机应用现状及未来方向.doc
  9. 无人驾驶入门2:高精度地图
  10. php输出m3u,Jwplayer玩m3u8生成的php