Proxy 公司代理能否缓存整个页面?

Proxy 公司代理能否缓存整个页面?,proxy,Proxy,当我们的客户测试我们的ASP.NET web应用程序时,我们看到一些奇怪的错误。每一页的顶部都有一个购物车计数器,告诉你购物车中有多少物品。她报告说,随着她从一页转到下一页,这个数字正在变化。我们无法重现这一点 有没有可能她的公司代理服务器正在缓存整个页面,而从未实际联系过我们的服务器?这是http上的暂存站点,她的生产站点位于https上 修订:页面也通过HTTPS进行缓存。它显示了我们购物车页面的完全缓存版本。如果用户单击“刷新”按钮,他们将获得页面的当前版本,但新版本将成为缓存版本。当然,

当我们的客户测试我们的ASP.NET web应用程序时,我们看到一些奇怪的错误。每一页的顶部都有一个购物车计数器,告诉你购物车中有多少物品。她报告说,随着她从一页转到下一页,这个数字正在变化。我们无法重现这一点

有没有可能她的公司代理服务器正在缓存整个页面,而从未实际联系过我们的服务器?这是http上的暂存站点,她的生产站点位于https上


修订:页面也通过HTTPS进行缓存。它显示了我们购物车页面的完全缓存版本。如果用户单击“刷新”按钮,他们将获得页面的当前版本,但新版本将成为缓存版本。

当然,中间代理(公司或其他)可能正在缓存您的页面。虽然我不明白这将如何解释页面上的购物车号码发生变化。如果不希望进行任何缓存,请将适当的HTTP头与不希望缓存的每个请求一起发送:

Cache-Control: private, no-store, max-age=0
Expires: <some date in the past>
Pragma: no-cache
缓存控制:私有,无存储,最大年龄=0
到期:
Pragma:没有缓存

上面的第一行用于HTTP 1.1客户端,第二行用于HTTP 1.0客户端。查看HTTP 1.1协议规范的一节,了解所有血淋淋的细节。

IE中也有可能导致这种行为的设置。转到“工具”>“互联网选项”。在“常规”选项卡上,单击“浏览历史记录”下的“设置”。确保“检查存储页面的更新版本”设置为“自动”。这是默认值


我有一个用户将此更改为“从不”,他想知道为什么他总是看到旧内容。:)

应用程序中是否设置了nocache和其他各种“请不要缓存此页面”命令?没有具体说明,但我们过去从未遇到过此问题。我是否总是必须明确告诉代理服务器哪些内容是动态的?代理是否必须遵守HTTP expires标头?如果不遵守,那就是一个错误,因为这些值是用来控制代理行为的。@Dominic Rodger是的,如果它遵循规范的话。但这是一个荣誉系统:(但很可能,你没有处理一个邪恶的代理:)如果需要,代理服务器可以忽略过期时间。有些是按设计的,有些是按配置的。此外,我的代理服务器甚至将页面结果返回到错误的会话。这通常是由于未设置“无缓存”值造成的。(大多数代理服务器都假设缓存的结果可以返回到任何用户/会话)我刚刚给客户端发了电子邮件,看看这是否是问题所在。我可以通过在带有IE6的机器上更改此设置来重新创建此问题。好主意!这正是问题所在。该用户的IE设置为永远无法获取网页的新版本。为什么会这样,我可能永远也不知道。非常感谢你提供的信息。这无疑为我节省了许多工作时间。