缓存的好处
- 减少冗余的数据传输,同样的请求由缓存的副本来应对。
- 缓解了网络带宽瓶颈的问题,因为客户端会以网络路径上最慢的网速来访问服务器。
- 降低了对原始服务器的要求,避免瞬间拥塞。
- 降低了距离延迟,因为从较远的地方加载页面会更慢。
缓存类型
- 多级缓存 (2-3级)
- 网状缓存(内容路由器)
缓存步骤
- 接收请求
- 解析请求
- 查询本地或获取远程
- 新鲜度检测
- 创建响应
- 发送给客户端
- 创建本次事务日志
缓存命中
缓存命中:有缓存并且未过期
缓存未命中:没有缓存或再验证失败,向原始服务器请求
缓慢命中:有缓存,再验证成功
文档过期首部
Cache-Control: max-age=484200
max-age定义了文档最大使用期,单位为秒
Expires: Fri, 05 Jul 2002, 05:00:00 GMT
指定一个绝对的过期时间
两个首部子段均可以标明文档过期时间。
条件请求首部
缓存再验证时,Http允许缓存向原始服务器发送一个“条件GET”。
If-Modified-Since: (date) 日期再验证
自某个日期后资源发生变化,IMS才会指示服务器执行请求
If-None_Match: (tags) 实体标签再验证
文档标签发生变化,才去获取内容