当我们的客户测试我们的ASP.NET网络应用时,我们看到一些奇怪的错误。每个页面顶部都有一个购物车柜台,可以告诉您购物车中有多少商品。她报告说,当她从一个页面移动到另一个页面时,这个数字正在发生变化。我们无法再创造这个。
她的公司代理服务器是否有可能缓存整个页面而从未实际联系我们的服务器?这是http上的暂存站点,她的生产站点位于https。
修订版:该页面也通过HTTPS缓存。它显示了我们购物车页面的完全缓存版本。如果用户单击刷新按钮,则会获得该页面的当前版本,但该新版本将成为缓存版本。
答案 0 :(得分:3)
中间代理(公司或其他)当然可能会缓存您的网页。虽然我不明白这将如何解释更改页面上的购物车编号。如果您不希望发生任何缓存,请发送相应的HTTP标头以及您不希望缓存的每个请求:
Cache-Control: private, no-store, max-age=0
Expires: <some date in the past>
Pragma: no-cache
上面第一行是HTTP 1.1客户端,第二行是HTTP 1.0客户端。查看HTTP 1.1协议规范的14.9部分,了解所有血腥细节。
答案 1 :(得分:2)
IE中还有一个可能导致此行为的设置。转到“工具”&gt; “互联网选项”。在“常规”标签上,点击“浏览历史记录”下的“设置”。确保“检查存储页面的较新版本”是否设置为“自动”。这是默认值。
我有一个用户将其更改为“从不”,并且想知道为什么他总是看到旧内容。 :)