发布信息后返回 302 重定向。此重定向旨在重新加载当前页面。
这一切都工作正常,但 IE 在标头中添加了 No-Cache:
Cache-Control: no-cache
我们使用 Squid 来缓存我们的内容,并将其放在标头中绕过了鱿鱼。
由于此重定向经常使用(没有办法解决这个问题),这会大大增加我们系统的负载。
Firefox 没有这个问题,它只是请求重定向的页面而不改变 header,这正是我们想要的。
我们可以做些什么来阻止 IE 添加无缓存吗?
迷人。这确实是一个 IE 问题,没有直接的解决方法。问题在于,IE 会无条件地向 HTTP POST 请求添加 Cache-Control: no-cache 请求标头(如果有代理,则添加 Pragma: no-cache 请求标头)。
毫无疑问,这是十多年前在 IE 中引入的,目的是为了适应有缺陷的代理服务器,这些代理服务器无法正确处理 HTTP POST 请求,并且会错误地返回缓存的响应。
IE 的一个怪癖是,当您重定向时,无缓存标头会重新添加到重定向的请求中。因此,在您的情况下,您的重定向请求还会发送从 POST 请求携带的“no-cache”请求标头。
不幸的是,没有直接的解决方法。您可以将 IE 用户重定向到插页式页面,该页面使用 JavaScript 将他们重定向回原始页面。 (但是不要使用 META REFRESH,因为它总是发送无缓存请求)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)