1、为什么要引入浏览器缓存
1、服务器会存在大量重复请求
比如我们每次刷新页面的时候都会发送一次请求到服务器,而多次请求的参数和响应的内容都完全一致,其实这种请求完全就是多余的,我们完全可以就用上一次的响应内容。
2、提高响应的速度
对于重复的请求,我们将响应内容保存到本地,下一次请求时可以直接返回而无需请求服务器,那么会提高响应的速度,增强用户体验
3、提高服务器的吞吐量
如果我们能够减少对服务器发送重复的请求,那么服务器就有更多的时间和资源去处理那些真正有效的请求了,无疑是会增大我们服务器的吞吐量的。
2、浏览器的缓存策略
缓存虽然可以服务器的吞吐量和请求的响应速度,但是缓存并不适用于所有情况,用的不好的,反而会使用户体验变得很差,因此我们需要针对不同的请求制定不同的缓存策略。
缓存策略我们可以使用请求头中的cache-control
字段进行设定,取值主要有以下几种:
指令 | 作用 |
---|---|
private | 缓存响应指令,表示只对当前的服务提供缓存服务,对于其他用户的请求,缓存服务器不会返回缓存 |
public | 与private对立,表示其他客户也可以利用缓存 |
max-age = time | 请求缓存过期的时间小于max-age指定的时间,客户端都可以接受缓存;作为相应的头部字段则表示指定的时间内不再向服务发起资源有效性确认,而指定的时间就是缓 |