前端问题:如何使网页中的http地址自动升级为https地址
缘应用场景解决方案原理官方地址
缘
我一个搞后端开发的天天捣鼓前端的事,会不会被各位同僚念叨,哈哈。项目上的需求,需要把现在的https地址转换成http的地址,然而修改了nginx配置,摘除了证书,访问的所有静态文件依然是https,捣鼓了好半天,终于搞明白了原理,反其道而行,就有了这篇文章。
应用场景
当我们项目过于臃肿,项目经理要求你把项目重新部署,要求有安全的https证书访问,那你之前写死的或者什么乱七八糟的http开头的地址就会有错误提示。这时候的你又不愿意一个个去修改cdn地址或者其他url指向的时候,就可以用下面的方法。
解决方案
在文件头加上以下内容,直接上代码:
header("Content-Security-Policy: upgrade-insecure-requests");
原理
就是W3C 工作组考虑到了我们升级 HTTPS 的艰难,在 2015 年 4 月份就出了一个 Upgrade Insecure Requests 的草案,他的作用就是让浏览器自动升级请求。
我们的页面是 https 的,而这个页面中包含了大量的 http 资源(图片、iframe等),页面一旦发现存在上述响应头,会在加载 http 资源时自动替换成 https 请求。
就是工作组为了节省咱们时间,做的操作,感谢工作组。 至于更多的,自行百度。
官方地址
https://www.w3.org/TR/upgrade-insecure-requests/
蜚语:你没有时间享乐,有些快乐需要你负重前行
文章来源
发表评论