Firefox 66、67将302保存在缓存中

时间:2019-06-16 16:39:15

标签: firefox caching http-status-code-302

在Firefox 66和67中缓存302存在一些问题:

某些序列302会导致Firefox使用302中以前缓存的位置,而不是已经可用的URL-因此,不应重定向它。即使在所有302的标头中都使用了“缓存控制:不缓存,不存储,max-age = 0,必须重新验证”,也会发生这种情况。

用例:

  1. 用户清除Firefox缓存。
  2. 用户输入每个页面上出现的资源(PNG图像)的URL。
  3. 系统(使用CAS Apereo + Spring安全性)发送状态代码302和CAS登录页面位置的响应。
  4. 用户输入其他网址,例如主页。这导致用户没有重定向到第二步所需的资源。跳过此步骤后,无缓存在Firefox中可以正常使用。
  5. 系统发送带有状态码302和CAS登录页面位置的响应(类似于第三步)。
  6. 用户登录。
  7. 系统发送状态代码302和CAS故障单位置的响应。然后再次使用状态码302重定向到第四步所需的URL。
  8. 系统无法正常运行。 Firefox使用should not be cached,但仍使用缓存的文件(包括第二步和第四步所需的URL中的文件)。例如。它导致重定向到主页(第4步的URL),而不是显示所需的页面(从菜单访问)。

其他浏览器和较旧的Firefox行为正常,并且不会发生重定向。清除缓存后,Firefox 66和67会正常运行。

Firefox控制台屏幕截图:

第三步网络日志: enter image description here

第五次网络日志: enter image description here

第六次网络日志: enter image description here

第7个网络日志: enter image description here

1 个答案:

答案 0 :(得分:0)

缓存302是Firefox中的缺陷。我报告了issue,并且缓存已修复。