<Meta http-equiv="Expires" Content="3600">
<Meta http-equiv="Expires" Content="Wed, 26 Feb 1997 08:21:57 GMT">
HTTP头信息如下:
HTTP/1.1 200 OK
Date: Fri, 30 Oct 1998 13:19:41 GMT
Server: Apache/1.3.3 (Unix)
Cache-Control: max-age=3600, must-revalidate
Expires: Fri, 30 Oct 1998 14:19:41 GMT
Last-Modified: Mon, 29 Jun 1998 02:28:12 GMT(作对比看是否需要更新页面)
现在为了保证用户能访问到最新的内容,一般采用更灵活的服务端缓存。
服务端缓存:页面缓存,数据缓存,数据库缓存
1.页面缓存:将动态页面直接生成静态页面放在服务器端,用户调取相同页面时,静态页面直接下载在客户端,不再需要通过程序的运行和数据库的访问,大大节约了服务器的负载。还有网页片段缓存技术,将页面部分缓存,代表技术有ESI cache。
2.数据缓存:用户发布完信息想直接看到信息,而不是等缓存时间到了刷新后才看到,数据缓存技术应运而生。
数据缓存的两种做法:
a.内存缓存:缓存数据放在服务器的内存中 优点:速度快 缺点:资源有限
b.文件缓存:缓存数据放在服务器的硬盘中 优点:容量大 缺点:速度慢,尤其缓存数量大的时候
比较流行的数据缓存框架:ehcache和memcached
ehcache:核心模块是数据缓存部分,比如ehcache和hibernate整合时,能将查出的对象集合放在内存中,下次再次查询时直接从内从中返回数据集合,而不用再进行数据库的查询。
memcached:将数据采用键值的形式放在内存中,使用时可以将查询的md5作为键,查询的结果作为值。相对于ehcache,memcached是一个工具,前者是一个框架。
3.数据库的缓存:一般由数据库提供,可以对表建立高速缓存,提高对经常访问的数据的访问速度。