基本的网络请求就是三个步骤:请求,处理,响应。
后端缓存主要集中于“处理”步骤,通过保留数据库连接,存储处理结果等方式缩短处理时间,尽快进入“响应”步骤。当然这不在本文的讨论范围之内。
而前端缓存则可以在剩下的两步:“请求”和“响应”中进行。在“请求”步骤中,浏览器也可以通过存储结果的方式直接使用资源,直接省去了发送请求;而“响应”步骤需要浏览器和服务器共同配合,通过减少响应内容来缩短传输时间。这些都会在下面进行讨论。
本文主要包含
* 按缓存位置分类 (memory cache, disk cache, Service Worker 等)
* 按失效策略分类 (Cache-Control, ETag 等)
* 帮助理解原理的一些案例
* 缓存的应用模式
按缓存位置分类
我看过的大部分讨论缓存的文章会直接从 HTTP 协议头中的缓存字段开始,例如 Cache-Control, ETag,