瀏覽器對301重定向的緩存

慘痛的經歷

最近遇到一件糟心事兒,運營線下推廣用的物理中的二維碼是很早以前的下載APP的URL,這個下載地址打開後直接跳轉到騰訊應用寶;後來咱們須要修改跳轉的地址,發佈上線後,頁面打開仍是跳轉到老地址,怎麼弄都不生效,只有新用戶才能正常使用。html

第一直覺就懷疑是緩存的問題,可是咱們抓吧卻發現,打開下載地址根本抓不到下載地址的HTML包,只能抓到騰訊應用寶的地址。瀏覽器

這也就是說雖然我打開的是A連接,可是瀏覽器根本就沒有跳轉到A連接,而是直接跳轉到了應用寶。緩存

緣由

後來多方查詢才知道,問題的緣由是由於這個頁面以前是直接跳轉到應用寶的,瀏覽器緩存了這個301重定向,後續的打開其實沒有打開下載地址,而是直接使用緩存的重定向跳轉到應用寶。服務器

緩存時長

每一個瀏覽器對重定向的緩存時長都不同markdown

  • IE7, IE8 不會緩存301
  • IE 11 會緩存301,時間未知,重啓無效
  • Chrome 會緩存301,時間未知,重啓無效
  • Firefox 會緩存301,時間未知,重啓無效

如何規避

咱們能夠對必要的HTML頁面禁用緩存,如何完美滴使瀏覽器訪問一個 HTML頁面時禁用緩存?ui

能夠在Head中使用mete標籤來禁用緩存:spa

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
複製代碼

no-cache 表示不緩存過時資源,緩存會向服務器進行有效處理確認以後處理資源,即 304code

no-store 纔是真正的不進行緩存。orm

相關文章
相關標籤/搜索