首页 > 其他分享 >Chrome 自动把 http 的 xhr 请求替换成了 https 域名

Chrome 自动把 http 的 xhr 请求替换成了 https 域名

时间:2022-11-10 19:25:58浏览次数:66  
标签:http xhr Chrome 替换成 HSTS 域名 https Transport 加载

问题描述

遇到了个诡异的事情。客户反馈他们想在线上 https 域名下,就是要访问 http 的链接,但是失败了。发出去的一直是 https 的 xhr 请求。

直接在控制台输入例子代码,就能看到 network 里发出去的链接的确是 https 的

var xhr = new XMLHttpRequest()
xhr.open("GET", "http://imapi.jiehun.com.cn/socket.io/1/?t=1668076877422", true)
xhr.send()

已知 XMLHttpRequest 对象控制台输出的的确是 native code,并不是被篡改了的,何解?

解答

参考 MDN 文档 HTTP Strict Transport Security

HTTP-Strict-Transport-Security(通常简称为 HSTS)响应标头用来通知浏览器应该只通过 HTTPS 访问该站点,并且以后使用 HTTP 访问该站点的所有尝试都应自动转换为 HTTPS。

语法

Strict-Transport-Security: max-age=<expire-time>
Strict-Transport-Security: max-age=<expire-time>; includeSubDomains
Strict-Transport-Security: max-age=<expire-time>; preload

检查得知客户的网站的确是设置了这个

查阅了下

max-age=. 设置在浏览器收到这个请求后的秒的时间内凡是访问这个域名下的请求都使用 HTTPS 请求。

includeSubDomains. 可选. 如果这个可选的参数被指定,那么说明此规则也适用于该网站的所有子域名。

preload. 可选. 查看 预加载 HSTS 获得详情。不是标准的一部分。

故而这个用户设置现在和未来的所有子域名会自动使用 HTTPS 连接长达一年。同时阻止了只能通过 HTTP 访问的内容。且启用了预加载服务。

preload 与预加载

谷歌维护着一个 HSTS 预加载服务。按照如下指示成功提交你的域名后,浏览器将会永不使用非安全的方式连接到你的域名。虽然该服务是由谷歌提供的,但所有浏览器都有使用这份列表的意向(或者已经在用了)。但是,这不是 HSTS 标准的一部分,也不该被当作正式的内容。

标签:http,xhr,Chrome,替换成,HSTS,域名,https,Transport,加载
From: https://www.cnblogs.com/everlose/p/16878088.html

相关文章

  • KubeSphere 使用 HTTPS 协议集成 Harbor 镜像仓库指南
    作者:申红磊,青云科技容器解决方案架构师,开源项目爱好者,KubeSphereMember。上面两篇文章讲了如何部署HTTPSHarbor和对接HTTP的Harbor镜像仓库;接下来详细介绍一下,如......
  • HTTP-看这一篇就够了
    HTTP和HTTPS有什么区别1、传输过程中信息是否加密,HTTP是超文本传输协议,信息是明文传输,HTTPS是具有安全性的SSL加密的超文本传输协议,信息是加密传输;2、服务端使用的端口号......
  • SpringBoot启用Https(二十六)
    死亡的日子终究会到来,在那一天到来之前,别忘记,来我坟前再看一眼上一章简单介绍了SpringBoot自定义日志Starter(二十五),如果没有看过,​​请观看上一章​​关于这一章节的内......
  • 记一次HTTPClient模拟登录获取Cookie的开发历程
    记一次HTTPClient模拟登录获取Cookie的开发历程环境:​ springboot:2.7​ jdk: 1.8​ httpClient:4.5.13设计方案​ 通过新建一个空的cookie库创建出一个Http客户......
  • nginx 使用ssl证书配置https协议
    如果能给你带来帮助,不胜荣幸,如果有错误也请批评指正,共同学习,共同进步。第一,需要去申请或者购买ssl证书(这步略过,因为开发过程中没有给我提供证书和域名,只有ip地址),我从......
  • HNCTF [Week1]Interesting_http
    HNCTF[Week1]Interesting_http五毛钱翻译:请用post给我一个wantBurpSuite抓包传参<want>参数更改传参方式发送到'重发模块'---->五毛钱翻译:你还要告诉我你......
  • HttpWebRequest 使用token访问 IdentityServer保护起来的api
    HttpWebRequestrequest=WebRequest.Create("http://localhost:5001/identity")asHttpWebRequest;request.Method="GET";varheaders=request.Headers;heade......
  • 【XAML】WindowChrome的使用心得
    参考:https://blog.csdn.net/WPwalter/article/details/81121829 Windows结构标准窗口由两个重叠的矩形组成。外部矩形(灰色)是非工作区,内部矩形(白色)是工作区。 ......
  • 推荐一款个人感觉比较好用的 JSON 格式化 chrome 插件-JSON-handle
    ​​插件下载地址​​,记得打开VPN。JSON数据展示效果如下图,个人感觉还不错,就是加载起来可能会稍微慢一点,但并不影响我对它的好感。可以展开,收起。右上角有个小方框,点一下......
  • Spring Boot:HTTP端口
    在​​SpringBoot​​​应用程序中,​​HTTP​​​端口默认为​​8080​​。可以通过​​server.port​​​属性来设置,往配置文件​​application.properties​​中添加以......