web-server – 有没有办法关闭特定网站的客户端浏览器缓存?

前端之家收集整理的这篇文章主要介绍了web-server – 有没有办法关闭特定网站的客户端浏览器缓存?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是一个与浏览器无关的问题,但我们正在使用IE9进行测试.

我们的用户访问的其中一个网络应用程序正在被随机缓存,并且应该没有显示更改.没有其他网站有这个问题,我们已经与声称没有发生在其他任何人身上的供应商合作过.如果我们使用开发人员工具栏并选择“从服务器强制刷新”,则一切都会正确更新

我们的想法是通过禁用此特定站点的缓存来解决问题,而不是真正解决问题.但是,我们不知道如何.

解决方法

禁用浏览器缓存的唯一正确方法是来自webapp本身的HTTP标头.对于任何2000年后的浏览器,HTTP 1.1“Cache-Control”标题应该足够了.但为了额外的保护,服务器可以发射 HTTP 1.1 “Cache-Control” and HTTP 1.0 “Expires” headers together.

处理缓存失效的hack’ish但有时看到的方法是来自服务器的URL中的“cachebuster”字符串.缓存器通常基于时间戳,并作为查询字符串添加到每个HTML LINK,以使URL唯一且仅使用一次.像http://example.org/filename.html?cb=\u0026lt;timestamp random_value>这样的东西.这很丑陋,并且没有做任何事情,HTTP标头不会做得更好.但它可以用作有限受众(内联网上的fx)的黑客攻击,或者作为额外的保护层以及适当的HTTP标头.

AFAIK无法从Internet Explorer中有选择地禁用单个站点的缓存.一个(血腥复杂的)解决方案可能是在您的LAN上安装Varnish cache作为中间缓存,将Internet Explorer设置为使用Varnish作为HTTP代理,并使用VCL language on Varnish仅重新编写此特定站点的HTTP标头.

老实说,我认为你的供应商在这里犯了一个错误.我建议安装Fiddler2 for IEFirebug for Firefox,然后查看webapp发送的实际HTTP头.将其与我已经链接到上面的Mark Nottingham’s caching tutorial相关联 – 我猜测标题允许缓存,或者至少没有明确禁止缓存.

猜你在找的HTML相关文章