防止页面客户端被缓存
许多浏览器为了能快速向用户展示所请求的页面,会把来自服务器的网页存放在客户端的缓存中,如果用户多次请求访问服务器端的同一个网页,并且在客户端的缓存中年已经存在该网页,那么浏览器只需要从缓存中获取该网页
,并不需要在请求访问远程服务器上的网页
浏览器端的缓存技术适用于保存服务器端的静态网页,以及不包含敏感数据的网页,一下情形中,服务器往往
不希望客户端被浏览器缓存:
(1)网页包含随时会被更新的动态内容,因为如果浏览器向用户展示本地缓存中的网页,有可能展示的是过期的网页
(2)网页中包含敏感的数据,如特定用户的银行账户信息,电子邮件内容,因为如果浏览器把网页保存在本地缓存中
有可能被其他未授权的用户访问到该网页
服务器端的HttpServlet可以通过设置特定的HTTP响应头来禁止客户端缓存网页,
response.addHeader("Pragma","no-cache");
response.setHeader("Cache-Control","no-cache");
response.setHeader("Expires","0");
"Parama"选项适应于采用HTTP1.0的浏览器,在HTTP1.1中,"Cache-Control"选项用来决定客户端是否可以缓存网页,如果取值为
"no-cache"那么客户端不会把Servlet生成的网页保存在本地缓存中,HTTP1.0和HTTP1.1都支持"Expires"选项
因此所有的浏览器都能识别该选项,"Expires"选项用于设定网页过期的时间,如果为0,就表示立即过期,如果用户重复请求访问该
网站,那么浏览器每次都应该从服务器端获取最新的网页数据