关于缓存
缓存能够优化加载速度,提高用户体验,但同时也可能致使代码更新不及时生效, 因此一个好的缓存策略对于咱们能够解决咱们代码以外的后顾之忧。
Cache-Conttrol和Expires的优先级较条件请求的高。缓存
HTTP缓存头
- 存在两个基本的缓存头,Cache-Control和Expires。
Cache-Control
- Cache-Control是一个复合值,便可以写成
Cache-Control: public, max-age=31536000
,单位以秒计算。
- public: 资源不单单能够被客户端缓存,还能够被其余的中间代理器缓存。
- private: 只能够被客户端缓存。
Expires
- 设置一个缓存失效的日期,当和max-age同时出现的时候,以max-age为准。时间格式为GMT格式。
条件请求
Last-Modified
- 在服务器端设置文件的最后修改时间,请求时自动带上If-Modified-Since进行比较
ETag
- 值为MD5 hash,请求时会带上If-None-Match字段进行比较。
不设置缓存
Cache-Control: no-cache, no-store