HTTP 缓存机制学习实践

1. 背景

这两天研究了下 HTTP 的缓存机制,其中版本是HTTP 1.0/1.1。现在将几个和 HTTP cache 有关的 Header 的用法做一个总结。

2. 缓存机制

2.1 Header 取值

服务器在返回的 response 中主要使用两个 Header 来控制浏览器的缓存行为:

  1. Expires:在HTTP 1.0版本中定义,为了兼容老版本 UA 常常也会加上该 Header,后面跟一个绝对时间字符串,表示过期时间。
  2. Cache-Control:在HTTP 1.1版本中定义,除了提供了同Expires相同并更精确的缓存功能,还提供了验证机制,它可以取以下这些值:
    • max-age:功能和Expires类似,但是后面跟一个以“秒”为单位的相对时间,来供浏览器计算过期时间。
    • no-cache:提供了过期验证机制,下文会再着重介绍。
    • no-store:表示当前请求资源禁用缓存。
    • private:指示只有用户客户端可以缓存,而 CDN 等不可。
    • public:指示用户客户端和 CDN 都可以缓存当前资源。
2.2 直接缓存


阅读全文 »