浏览器F12调试请求头中出现的“Upgrade-Insecure-Requests1”是什么意思?

温馨提示:文章已超过1267天没有更新,可能存在链接失效,相关教程仅供参考

在网站添加一条http://开头的链接的视频,发现无法播放,浏览器F12控制台网络调试发现视频请求那条加载失败,链接自动变成了https://开头的,经过排查发现浏览器请求头中出现了 upgrade-insecure-requests: 1 参数导致的。请求头中出现的 upgrade-insecure-requests: 1 是什么意思?查了一下相关的资料,感觉挺有意思,记录一下。

image.png

浏览器的请求头

upgrade-insecure-requests: 1  //把服务器发送过来的请求不用 http协议 而启用 https协议

对应服务器Web响应头如下

Content-Security-Policy "upgrade-insecure-requests;"

该指令用于让浏览器自动升级请求从http到https,用于大量包含http资源的http网页直接升级到https而不会报错.简单来讲,就相当于在http和https之间起的一个过渡作用

举个例子

<video src="http://demo/video.mp4"  autoplay="autoplay"></video>

加上 upgrade-insecure-requests 响应头以后,浏览器在https协议中调用的资源就会理解为也是使用https协议的,从而不会提示不安全协议

<video src="https://demo/video.mp4"  autoplay="autoplay"></video>

在https网页中请求载入一个http的资源,那么它会将所有连接强制以https加密形式发送请求,这样如果请求的资源不支持https加密,那么该资源就不会被加载,从而导致无法访问调用

总结

解决办法只有两种,要么把请求资源链接改为https加密协议可以访问的,要么就是取消Web响应头 Content-Security-Policy "upgrade-insecure-requests;"  设置


© 除非注明,否则均为阿豪运维笔记原创文章,转载或复制请以超链接形式并注明出处

取消
微信二维码
微信二维码
支付宝二维码