http中有关缓存相关的几个字段

Expires、Cache-Control、Last-Modified、 ETag是RFC 2616(HTTP/1.1)协议中和网页缓存相关的几个字段。前两个用来控制缓存的失效日期,后两个用来验证网页的有效性。要注意的是, HTTP/1.0有一个功能比较弱的缓存控制机制:Pragma,使用HTTP/1.0的缓存将忽略Expires和Cache-Control头。我们这里以Apache2.0服务器为例,只讨论HTTP/1.1协议。Expires

Expires字段声明了一个网页或URL地址不再被浏览器缓存的时间,一旦超过了这个时间,浏览器都应该联系原始服务器。RFC告诉我们:“由于推断的失效时间也许会降低语义透明度,应该被谨慎使用,同时我们鼓励原始服务器尽可能提供确切的失效时间。”

对于一般的纯静态页面,如html、gif、jpg、css、js,默认安装的Apache服务器,不会在响应头添加这个字段。Firefox浏览器接受到相应后,如果发现没有Expires字段,浏览器根据文件的类型和“Last-Modified”字段来推断出一个合适的失效时间,并存储在客户端。推测出的时间一般是接受到响应时间后的三天左右。

Apache的expires_module模块可以在Http响应头部自动加上Expires字段。在Apache的httpd.conf文件中进行如下配置:

#启用expires_module模块
LoadModule expires_module modules/mod_expires.so
# 启用有效期控制
ExpiresActive On
# GIF有效期为1个月
ExpiresByType image/gif A2592000
# HTML文档的有效期是最后修改时刻后的一星期
ExpiresByType text/html M604800
#以下的含义类似
ExpiresByType text/css “now plus 2 month”
ExpiresByType text/js “now plus 2 day”
ExpiresByType image/jpeg “access plus 2 month”
ExpiresByType image/bmp “access plus 2 month”
ExpiresByType image/x-icon “access plus 2 month”
ExpiresByType image/png “access plu

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
HTTP缓存是一种优化网络性能的重要技术。而在HTTP缓存,最佳实践有以下几个方面: 1. 缓存策略:最佳的HTTP缓存需要根据不同的资源类型和内容特点制定合适的缓存策略。对于静态资源如样式表、图片等,可以使用长时间过期的缓存策略,通过设置合适的Cache-Control头部字段来指定缓存策略;对于动态生成的内容,可以根据实际情况设置相对较短的过期时间或者使用条件请求来实现缓存更新。 2. 缓存验证:使用缓存验证机制可以避免无效缓存的情况发生。服务器可以通过Etag或者Last-Modified字段来生成缓存验证信息,并在客户端发送请求时带上这些验证信息,服务器端通过对比验证信息来判断缓存是否有效,从而决定是否返回304 Not Modified状态码,减少网络传输。 3. Vary头部字段:对于经常有变化的资源,如根据请求头信息返回不同内容的资源,可以使用Vary头部字段来标识不同的版本,并让代理服务器根据请求头信息进行区分缓存。 4. 压缩缓存:在进行缓存存储时,可以对资源进行压缩以减小存储空间和传输的体积。常见的压缩方式有Gzip或者Deflate等,可以减少传输时间和带宽消耗。 5. 缓存失效:对于不再需要的缓存,及时进行缓存失效。当资源内容发生变化、缓存时效到期或者缓存区空间不足时,及时清除失效的缓存,以保证新鲜的内容能够及时被更新。 综上所述,最佳的HTTP缓存实践需要综合考虑资源类型、内容特点以及网络环境等因素,通过合适的缓存策略、验证机制、压缩和及时的缓存失效等措施,来实现更高效的网络传输和页面加载速度的提升。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值