在Firefox 66和67中缓存302存在一些问题:
某些序列302会导致Firefox使用302中以前缓存的位置,而不是已经可用的URL-因此,不应重定向它。即使在所有302的标头中都使用了“缓存控制:不缓存,不存储,max-age = 0,必须重新验证”,也会发生这种情况。
用例:
- 用户清除Firefox缓存。
- 用户输入每个页面上出现的资源(PNG图像)的URL。
- 系统(使用CAS Apereo + Spring安全性)发送状态代码302和CAS登录页面位置的响应。
- 用户输入其他网址,例如主页。这导致用户没有重定向到第二步所需的资源。跳过此步骤后,无缓存在Firefox中可以正常使用。
- 系统发送带有状态码302和CAS登录页面位置的响应(类似于第三步)。
- 用户登录。
- 系统发送状态代码302和CAS故障单位置的响应。然后再次使用状态码302重定向到第四步所需的URL。
- 系统无法正常运行。 Firefox使用should not be cached,但仍使用缓存的文件(包括第二步和第四步所需的URL中的文件)。例如。它导致重定向到主页(第4步的URL),而不是显示所需的页面(从菜单访问)。
其他浏览器和较旧的Firefox行为正常,并且不会发生重定向。清除缓存后,Firefox 66和67会正常运行。
Firefox控制台屏幕截图:
第三步网络日志:
第五次网络日志:
第六次网络日志:
第7个网络日志: