1. 优点
- 降低服务器负荷。
- 提高响应速度。
2. 缓存位置
- 浏览器
- 代理服务器
3. Cache-Control 字段
通用首部字段,控制缓存的行为。
Cache-Control: private, max-age=0, no-cache
private:默认值,仅客户端可以缓存,代理服务器不可缓存,与 public 相对。
no-cache:使用代理服务器缓存时,需先向源服务器验证缓存是否过期。何时使用代理服务器缓存呢?
一是客户端请求时,二是源服务器返回缓存给代理服务器,代理服务器需缓存时。no-store:不允许缓存。no-cache 是缓存前需先进行认证,private 是只允许客户端缓存。
max-age:请求报文中,max-age 越小,对缓存有效性越苛刻。当 max-age 为 0,那么缓存服务器通常需要将请求转发给源服务器。因为缓存服务器的缓存时间必须比请求报文中的 max-age 小才接收。
响应报文中,max-age 指缓存在代理服务器的有效时间。
注:Expires 字段也可以用于告知缓存服务器该资源什么时候会过期。在 HTTP/1.1 中,会优先处理 Cache-Control : max-age 指令;而在 HTTP/1.0 中,Cache-Control : max-age 指令会被忽略掉。
4. 总结
no-store 是不缓存,默认 private 是只允许客户端缓存,no-cache 是使用缓存前需认证,max-age 是指定缓存的有效期。