浏览器对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

相关文章
相关标签/搜索