NoteDeep

客户端可以通过Date首部的值来判断响应知否来自缓存,如果比当前时间早,就可以认为是一条缓存的响应,也可以通过age首部来分辨这条缓存响应的使用期。
私有缓存:如web浏览器中。
公有代理缓存:缓存代理服务器

代理缓存的结构

层次缓存:
在靠近客户端的一层使用廉价的小型缓存,在更高层次中逐步采用更大、功能更强的缓存来装载多用户共享的文档。

网状缓存:
根据URL在父缓存或原始服务器之间进行动态选择。
根据URL动态的选择一个父缓存
在前往父缓存之前,在本地缓存中搜索已缓存的副本
允许其他缓存对其缓存的部分进行访问,但不允许流量通过。

缓存的处理步骤:
  1. 接收
  2. 解析
  3. 查询
  4. 新鲜度检测
  5. 创建响应
  6. 发送
  7. 日志
通过Cache-Control首部和Expires首部说明了缓存的过期时间。
Cache-Control: max-age=3600
通过再验证首部,If-Modified-Since:Date进行缓存再验证。

服务器限制缓存的方式:
Pragma: no-cache
Cache-Control: no-store
Cache-Control: no-cache

客户端控制:
Cache-Control: max-slate 愿意接受稍微有些过期的文档
Cache-Control: min-fresh 不愿接受会在近期过期的文档


评论列表

    代理缓存的结构