关于缓存
缓存可以优化加载速度,提升用户体验,但同时也可能导致代码更新不及时生效, 所以一个好的缓存策略对于我们可以解决我们代码之外的后顾之忧。
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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。