`
superfofo
  • 浏览: 128763 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

web header 设置缓存

    博客分类:
  • HTML
阅读更多
搜集了一些关于header中cache的配置信息
-------------------------------------
为了在http的响应头中添加入Expires、Cache-Control、Pragma这样的信息,我最初是使用的在网页<head></head>元素之间添加meta标签的方式,来企图添加这些http头信息到Response中,但这样的方式一直没有效果。通过查看页面源代码,发现meta标签也确实已经正确的加上了,但通过FF观察Response对象又没有输出相应的头信息。而当我改用Filter的方式,在Filter中通过获取Response对象,执行response.setHeader()方法,将http头信息写入Response对象时,就立即看到效果了。为什么会这样呢?

究其原因,其实是我对meta标签的误解造成的。Meta标签是html标准中的一个标签,是Response中html内容的一部分。它主要是用来为浏览器或搜索引擎提供与网页内容相关的信息的,也就是说它是为能够解析html语言的工具提供信息的。而http是一个应用层的协议,html文档只不过是http协议可以携带的内容之一。

那些包含meta标签信息的html文档都被http当做是普通文档而包装在body块中进行传输。因此,存在于meta标签中的这些模拟的http头信息,并不能够真正的对http头产生影响。而在程序的Filter对象中,通过response.setHeader()方法,由于操作的对象Response就是一个http响应对象的实例,所以当然可以成功的改变Response的头信息。
http://hi.baidu.com/tianpaomian/blog/item/fb4741129463925bf819b8d7.html
---------------------------------------
public static void setCacheExpireDate(HttpServletResponse response,
			int seconds) {
		if (response != null) {
			Calendar cal = new GregorianCalendar();
			cal.add(Calendar.SECOND, seconds);
			response.setHeader("Cache-Control", "PUBLIC, max-age=" + seconds + ", must-revalidate");
			response.setHeader("Expires", htmlExpiresDateFormat().format(cal.getTime()));
		}
	}

        public static DateFormat htmlExpiresDateFormat() {
            DateFormat httpDateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
            httpDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
            return httpDateFormat;
        }


在setHeader expires 的时候,也可以使用
response.setDateHeader("Expires",System.currentTimeMillis()+3600*1000);

http://weblogs.java.net/blog/felipegaucho/archive/2007/08/expires_http_he.html
-------------------------------------
Max-age和mod_expires
expires指定了一个确定的时间,这就要求客户端和服务器端在时间上保持一致。
除了expires,在http1.1中还有个可选择的Cache-Control相应头,通过Cache-Control的Max-age指令可以指定缓存的内容的生
命期限,即多久后失效,cache-conctrol类似:
Cache-Control: max-age=315360000
如果同时设置了expires和max-age指令,max-age将会覆盖expires。
http://blog.sina.com.cn/s/blog_6b93a42d0100vhzj.html
-------------------------------------
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics