为了提高网页的访问效率,浏览器可以在本地缓存以前访问过的页面,当浏览器再次访问那些已经缓存了的页面时,浏览器就不用再去访问远程的Web服务器了,而是直接从本地取出缓存的内容。缓存提高了浏览器的访问效率,但有时候也会带来负面效果,那就是服务端的内容变化不能实时地反应到客户端,例如:动态产生的图片文件(如验证码)和js脚本文件不能及时更新的问题。有三个HTTP响应头字段可以禁止浏览器缓存当前页面,在Servlet中的示例代码如下:
response.setHeader("Expires",0);
response.setHeader("Cache-Control","no-cache");
response.setHeader("Pragma","no-cache");
并不是所有的浏览器都能完全支持这三个响应头,因此最好同时使用以上三个响应头,只要浏览器能支持其中任何一种形式,就能禁止浏览器缓存当前页面。