使用缓存的原因
- 缓解服务器压力;
- 降低客户端获取资源的延迟:缓存通常位于内存中,读取缓存的速度更快。并且缓存在地理位置上也有可能比源服务器来得近,例如浏览器缓存。
缓存实现方法
- 让代理服务器进行缓存;
- 让客户端浏览器进行缓存。
缓存设置
http协议中,可以通过响应报文的"Cache-Control" 首部字段来控制缓存,如:
Cache-Control : public, max-age=200
可缓存性
用来确定 Http 响应内容是否可以被缓存,以及可以被哪些地方缓存
- public : 指响应信息返回时,所经过的路径中的(包括路径中间的一些代理服务器,以及发出请求的客户端)任何节点都可以对返回的内容做本地缓存
- private : 返回的响应消息只可以被发起请求的客户端所缓存
- no-cache : 会在发起请求的客户端做缓存,但该缓存能不能被使用需要经过服务端的缓存验证,可以理解为“会在本地做缓存,但该缓存不一定能够被使用”.
- no-store : 不能在本地做缓存,需要不断从服务端获取内容来使用
缓存过期机制
- max-age = <seconds> : 设置缓存内容经过多少秒才算过期,过期之后,浏览器才会再次发起请求获取数据
- s-maxage = <seconds> : 会代替"max-age",但它只会在代理服务器中生效,是专为代理服务器使用的