Servlet技术(五)--防止页面被客户端缓存

来源:互联网 发布:综合办公软件下载 编辑:程序博客网 时间:2024/06/05 20:03

许多浏览器为了能快速向用户展示所请求的页面,会把来自服务器端的页面存放在客户端的缓存中。如果用户多次请求访问服务器端的同一个网页,并且在客户端的缓存中已经存在该网页,那么浏览器只需要从缓存中获取该网页,而不需要请求访问远程服务器上的网页。

浏览器端的缓存技术适用于保存服务器端的静态页面,以及不包含敏感数据的网页。以下情形中,服务器往往不希望页面被客户端缓存:

1、网页包含随时会被更新的动态内容。因为如果浏览器向用户展示本地缓存中的网页,有可能展示的是过期的网页

2、网页中含有敏感数据,如特定用户的银行账户信息,或者电子邮件的内容。因为如果浏览器把网页保存到本地缓存中,有可能被其他未授权的用户访问到该网页。

服务器端的HttpServlet可以通过设置特定的HTTP响应头来禁止客户端缓存网页,以下示范代码中的response变量引用HttpServletResponse对象:

response.addHeader("Pragma","no-cache");
response.setHeader("Cache-Control","no-cache");
response.setHeader("Expires","0");

Pragma”选项适用于采用HTTP1.0的浏览器。在HTTP1.1中,”Cache-Control”选项用来决定客户端是否可以缓存网页,如果取值为“no-cache,那么客户端不会把Servlet生成的网页保存在本地缓存中。HTTP1.0HTTP1.1都支持“Expires”选项,因此所有的浏览器都能识别该选项。“Expires”选项用于设定网页过期时间,如果为零,就表示立即过期。如果用户重复请求访问该网页,那么浏览器每次都应该从服务器端获取最新的网页数据。
0 0