HTTPS网页请求HTTP localhost未触发Mixed Content报错的原因及可靠性
HTTPS页面发起localhost HTTP请求的浏览器混合内容规则相关疑问
已验证的请求与浏览器表现
测试请求配置
- 页面来源:HTTPS协议的JSFiddle调试页面,嵌入的请求代码为
fetch('http://localhost:8090').then(...) - 请求目标分为两类:
- 一类为HTTP协议的本地回环地址:
localhost、127.0.0.1 - 一类为HTTP协议的同网段内网地址:如
192.168.1.x段地址
- 一类为HTTP协议的本地回环地址:
实际观测的浏览器行为
- Chrome(v89.0.4389.90)、Firefox(v86.0.1):请求目标为本地回环地址时可正常运行,不会弹出Mixed Content(混合内容)拦截报错;当请求目标为同网段192.168.1.x类内网地址时,会正常触发混合内容拦截
- Safari:上述所有对HTTP地址的请求均会被拦截,触发混合内容限制
核心待解答问题
- Chrome和Firefox对localhost/127.0.0.1的请求豁免,是否属于浏览器规则中明确写入的白名单机制,而非版本迭代过程中的临时差异?
- 两大浏览器厂商是否有公开的长期规划,未来会取消这类回环地址豁免,对HTTPS页面发起的localhost HTTP请求也触发混合内容拦截?
- 这类豁免特性是否具备长期稳定性,能否作为可靠的依赖项,用来实现"通过HTTPS网页控制绑定在localhost端口、对外提供HTTP API的本地应用"的方案?
内容的提问来源于stack exchange,提问作者Andrei Moiseev
相关产品推荐
相关产品推荐

