关于缓存

缓存可以优化加载速度,提升用户体验,但同时也可能导致代码更新不及时生效, 所以一个好的缓存策略对于我们可以解决我们代码之外的后顾之忧。
Cache-Conttrol和Expires的优先级较条件请求的高。

HTTP缓存头

  1. 存在两个基本的缓存头,Cache-Control和Expires。

Cache-Control

  1. Cache-Control是一个复合值,即可以写成Cache-Control: public, max-age=31536000,单位以秒计算。
  2. public: 资源不仅仅可以被客户端缓存,还可以被其他的中间代理器缓存。
  3. private: 只可以被客户端缓存。

Expires

  1. 设置一个缓存失效的日期,当和max-age同时出现的时候,以max-age为准。时间格式为GMT格式。

条件请求

Last-Modified

  1. 在服务器端设置文件的最后修改时间,请求时自动带上If-Modified-Since进行比较

ETag

  1. 值为MD5 hash,请求时会带上If-None-Match字段进行比较。

不设置缓存

  1. Cache-Control: no-cache, no-store

混饭小能手
36 声望2 粉丝

前端开发者