今天遇到个有点意思的问题.特此记录.
业务场景:
做了一个页面,但是对外是挂载在京东主站上.如:www.jd.com/yifu/123456.html.
现场情况:
在本地/测试环境/预发环境中,每次点击页面之前,都要删除浏览器缓存,否则是死链.
背景知识:
Chrome浏览器会自动记录http->https的跳转.比如访问http://www.jd.com 自动跳转成了 https//www.jd.com ,那么下次浏览器就会直接使用https.这里的自动跳转是基于域名的,也就是同一域名下有某个静态资源发生了跳转,也会导致全页面下次自动跳转.且这个过程发生在浏览器内部.
异常原因:
1. 我们的页面中有一部分是京东的公共头尾.其中引用了一个静态资源:http://www.jd.com/foo.ico
2. 京东主站会自动302跳转https,上述资源会自动跳转为http://www.jd.com/foo.ico
3. 这个过程被浏览器记录,缓存.
4. 点击页面的连接(http://www.jd.com/*),都会先被浏览器转为https,而本地/测试/预发环境均不支持https.形成死链.