凤凰架构读书笔记3-多级分流的优化,缓存,DNS,CDN,负载均衡

Step1: 客户端缓存多级分流

客户端缓存大概有 强制缓存和 协商缓存两种。他们的原理都是在服务器对客户端请求的响应中附带一些条件,如果客户端遇到相同请求,然后判断条件是否满足,如果满足,就直接用上一次服务器给予的响应来代替。

强制缓存

  • 定义:假设在某个时点到来以前,譬如收到响应后的 10 分钟内,资源的内容和状态一定不会被改变,因此客户端可以无须经过任何请求,在该时点前一直持有和使用该资源的本地缓存副本。
  • 设置方法:
    • 在header 中的 expire 中进行设置
    • 利用 header 中的 Cache-control 关键词来设置。Cache-control 中定义了一系列的参数比如 max-age、public、no-cache、no-transform,min-fresh 等等

协商缓存·

  • 定义:一种变化的检测,当检测的目标发生变化才进行下面的操作。
  • 根据资源的修改时间进行检查:如果此时服务端发现资源在该时间后没有被修改过,就只要返回一个 304/Not Modified 的响应即可,无须附带消息体。如果发现修改了,则会返回 200 和完整的消息体。关键词:If-Modified-Since
  • 根据资源的唯一标志(Etag)进行检查: 如果此时服务端计算后发现资源的唯一标识与上传回来的一致,说明资源没有被修改过,就只要返回一个 304/Not Modified 的响应即可,无

你可能感兴趣的:(凤凰架构,缓存,负载均衡,架构)