为了提高网页访问效率,浏览器可以在本地缓存以前访问的页面,当浏览器再次访问那些已经缓存的页面时,浏览器就不用再去访问远程 服务器了,而是直接取出本地缓存的内容。
缓存提高了浏览器的访问效率,降低了服务器压力,减少了网络流通带宽,但有时候也会带来负面效果,那就是服务端的内容变化而不能被实时的反馈到客户端。
有三个HTTP请求头都可以禁止浏览器缓存当前页面,分别是:
Pragma
Cache-Control
Expires
在java中:
response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0);
在html中:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> <META HTTP-EQUIV="Expires" CONTENT="0">
虽然这三个响应头都表示禁止浏览器缓存,但因为不是所有浏览器都能完全支持这三个响应头,因此最好是同时使用这三个,只要浏览器支持其中任意一个,那就能可靠的禁止浏览器缓存当前页面。