6

信息发布后返回 302 重定向。此重定向旨在重新加载当前页面。

这一切都很好,但 IE 在标题中添加了 No-Cache:

Cache-Control: no-cache

我们正在使用 Squid 来缓存我们的内容,并将其放在标题中绕过 squid。
由于这种重定向经常被使用(没有办法解决这个问题),这大大增加了我们系统的负载。

Firefox 没有这个问题,它只是请求重定向的页面而不更改标题,这正是我们想要的。

我们可以做些什么来阻止 IE 添加无缓存?

4

1 回答 1

3

迷人。这确实是一个没有直接解决方法的 IE 问题。问题是 IE 将无条件地将 Cache-Control: no-cache 请求标头(或 Pragma: no-cache 请求标头,如果您有代理)添加到 HTTP POST 请求。

这无疑是十多年前在 IE 中引入的,以适应那些不能正确处理 HTTP POST 请求并且会错误地返回缓存响应的错误代理服务器。

IE 的一个怪癖是,当您重定向时,无缓存标头会重新添加到重定向的请求中。因此,在您的情况下,您的重定向请求还会发送从 POST 请求中携带的“无缓存”请求标头。

不幸的是,没有直接的解决方法。您可以将 IE 用户重定向到使用 JavaScript 将他们重定向回原始页面的插页式页面。(但不要使用 META REFRESH,因为它总是发送无缓存请求)。

于 2009-07-18T16:07:44.220 回答