到期
字段声明一个网页的时间到期或URL地址不再是由浏览器缓存。一旦时间流逝浏览器应该联系原始服务器。RFC告诉我们:“因为推断过期时间可能减少语义透明性它应该小心使用我们鼓励原始服务器提供尽可能准确的过期时间。”
一般纯静态页面如html、gif、jpg Css js Apache服务器安装在默认情况下不会在响应头中添加这个领域。Firefox浏览器收到响应之后如果发现没有到期浏览器根据文件类型推断一个适当的过期时间和“last - modified”字段并将其存储在客户机上。估计时间通常是三天之后收到的响应时间。
Apache的expires_module模块可以自动到期字段添加到Http响应头。配置在Apache httpd后。配置文件:
#启用expires_module模块
LoadModule expires_module模块/ mod_expires.so
#使过期控制
ExpiresActive
# GIFExpiresActive
# GIFExpiresByType图像1月/ gif A2592000
# HTML文档的有效期是一个星期后最后修改时间
ExpiresByType text / html M604800
#以下意思类似于
ExpiresByType文本/ css ?现在+ 2月
jsExpiresByType文本/ ?现在+ 2天
ExpiresByType图像/ jpeg ?获得+ 2月
ExpiresByType图像/ bmp ?获得+ 2月
ExpiresByType图像/ x图标?获得+ 2月
ExpiresByType形象/ png”获得+ 2月”
动态页面如果到期没有被迫通过函数在页面添加如标题(“到期:?。函数的?D D MYH:我:年代?)。格林尼治时间?)Apache服务器将返回结婚1984年1月11日格林尼治时间05:00:00
过期的内容字段到浏览器。也就是说动态页面都是无效的。浏览器将仍然保存动态页面已经过期。
它可以发现火狐浏览器总是缓存页面不管是否到期不到期或不宣布过期时间。即使是在缓存中宣称的生效日期1970-01-01 08:00:00 web页面时浏览器仍然会发送文件的最后修改和ETag字段在缓存中。如果服务器端验证传递和返回304状态浏览器也会使用这个缓存。
cache - control
cache - control字段可以声明多个元素如no - cache must-revalidate信息= 0等等。这些元素用于指定的最长时间页面缓存它将如何被缓存它将如何被转换成不同的介质以及它如何将存储在一个持久的媒介。但任何cache - control命令不能保证隐私和数据安全。私人?和没有商店?命令可以为隐私和安全提供一些帮助但是他们不能被用作替代身份验证和加密。
Apache的mod_cern_meta模块允许Http响应头文件级别的控制而且它还可以配置cache - control头(或任何其他头)。头文件的响应是一个名为根据原始文件的文件名称在原始目录的子目录。请参考官方网站的Apache为特定用法。
cache - control:信息表示截止日期。如果没有开始mod_cern_meta模块Apache服务器将到期的日期字段转换成δ值(以秒为单位)并将其分配给信息。如果mod_cern_meta模块启动和配置信息价值Apache将覆盖到期。与此同时信息意味着Canche-Control:公众。通过这种方式cache - control:信息和到期值收到由浏览器是一致的。
如果到期日cache - control: max-ag = 0或负值浏览器将到期1970-01-01 08:00:00在相应的缓存。
last - modified
last - modified和ETag是两个领域的相关条件要求。如果一个页面缓存接收请求它发送一个验证请求向服务器页面是否已经改变与“ETag”和“如果修改因为“头在HTTP头。服务器法官基于这些信息是否有更新信息。