前端问题:如何使网页中的http地址自动升级为https地址

前端问题:如何使网页中的http地址自动升级为https地址

    • 应用场景
    • 解决方案
    • 原理
    • 官方地址

我一个搞后端开发的天天捣鼓前端的事,会不会被各位同僚念叨,哈哈。项目上的需求,需要把现在的https地址转换成http的地址,然而修改了nginx配置,摘除了证书,访问的所有静态文件依然是https,捣鼓了好半天,终于搞明白了原理,反其道而行,就有了这篇文章。

应用场景

当我们项目过于臃肿,项目经理要求你把项目重新部署,要求有安全的https证书访问,那你之前写死的或者什么乱七八糟的http开头的地址就会有错误提示。这时候的你又不愿意一个个去修改cdn地址或者其他url指向的时候,就可以用下面的方法。

解决方案

在文件头加上以下内容,直接上代码:


 
  <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

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/

蜚语:你没有时间享乐,有些快乐需要你负重前行

你可能感兴趣的:(前端,http,网络协议)