Gol*_*Jer 10 http internet-explorer web-server cache
这是一个与浏览器无关的问题,但我们正在使用 IE9 进行测试。
我们的用户访问的 Web 应用程序之一被随机缓存,更改未在应有的时候显示。没有其他网站有这个问题,我们已经与声称它不会发生在其他任何人身上的供应商合作。如果我们使用开发人员工具栏并选择“从服务器强制刷新”,一切都会正确更新。
我们的想法不是真正解决问题,而是通过禁用此特定站点的缓存来解决它。但是,我们不知道如何。
Jes*_*r M 10
禁用浏览器缓存的唯一正确方法是通过来自 web 应用程序本身的 HTTP 标头。对于 2000 年后的任何浏览器,仅 HTTP 1.1“Cache-Control”标头就足够了。但是为了额外的保护,服务器可以同时发出HTTP 1.1 "Cache-Control" 和 HTTP 1.0 "Expires" 标头。
处理缓存失效的一种hack'ish但有时会看到的方法是来自服务器的URL中的“cachebuster”字符串。cachebuster 通常是基于时间戳的,并作为查询字符串添加到每个 HTML 链接中,以使 URL 唯一且仅使用一次。类似的东西http://example.org/filename.html?cb=<timestamp+random_value>
。这是丑陋的,并且没有做任何 HTTP 标头没有做得更好的事情。但它可以用作有限受众的黑客攻击(Intranet 上的 fx),或者与适当的 HTTP 标头一起用作额外的保护层。
AFAIK 无法 仅从Internet Explorer 中选择性地禁用单个站点的缓存。一种(非常复杂的)解决方案可能是在 LAN 上安装Varnish 缓存作为中间缓存,将 Internet Explorer 设置为使用 Varnish 作为 HTTP 代理,并在 Varnish 上使用VCL 语言仅为该特定站点重写 HTTP 标头。
老实说,我认为您的供应商在这里犯了一个错误。我建议为 IE安装Fiddler2,或为 Firefox安装Firebug,并查看 webapp 发送的实际 HTTP 标头。将其与我已经在上面链接的Mark Nottingham 的缓存教程相关联——我猜标题允许缓存,或者至少不要明确禁止缓存。
归档时间: |
|
查看次数: |
34110 次 |
最近记录: |