最近遇到一個靈異事件html
h5頁面更新了js,在APP內部分登陸用戶可看新js渲染頁面,另外登陸用戶看到是老js渲染的頁面前端
js上線前會build帶上hash,hash方式採用 aaa-1s12jashdjas.js 方式nginx
用戶手動清除APP緩存,從新登陸後,進入頁面的渲染方式正常緩存
一、開始排查流程,前端修改了不規範的代碼格式,再次上線仍可復現運維
二、疑似nginx有緩存html文件,找運維排查,nginx沒有緩存該html頁面ui
三、又排查nginx配置問題,再次上線部署,仍可復現htm
四、疑似CDN的問題,遂刷新CDN,仍然有問題blog
五、懷疑CDN刷新不成功,遂去掉該頁面的CDN緩存,固然仍是有問題接口
六、抓包查看,APP內訪問該頁面時,只請求了接口數據,並未去請求接口數據事件
七、遂找APP開發諮詢,APP內h5頁面統一使用默認html方式緩存頁面,若是js有更新會去獲取新的js,可是實際並無去獲取
因此當前需排查的問題:是APP緩存了html?仍是服務端作了想要設置致使APP緩存未過時?
問題還在排查中,待更新
-----8月27日更新---------
最後通過排查,是nginx配置問題
nginx配置下緩存原理:https://www.cnblogs.com/sfnz/p/5383647.html
nginx配置 http header 中加上 no-cache, no-store 後,新修改的js問題不會被客戶端緩存到本地
此項排查工做其實能夠從http 的header中觀察中
最近剛好再惡補 http請求相關知識,推薦實體書:圖解http