享学课堂特邀作者:老顾
转载请声明出处!
前言
上一篇老顾介绍了CDN相关的知识,最后留了一下问题,就是缓存控制,今天老顾介绍一下如何控制缓存?
Cache Control响应头
首先我们先来看一下Cache Control这个概念,我们先看一下访问一个网站,观察一下响应头部
我们发现cache-control的值为max-age=31536000,从字面上面就能够猜出它的含义,就是服务端告诉客户端此信息可不可以缓存,以什么样的策略进行缓存;cache-control有哪些类型的值呢?
1、private:客户端可以缓存
2、public:客户端和代理服务器可以缓存
小伙伴们会疑惑什么是代理服务器可以缓存?我们用户电脑访问web站点之间,很有可能会经过类似nginx的反向代理服务器,也有可能会经过我们正向代理的服务器,也有可能会经过CDN网络;
因此我们中间层的服务节点,发现cache-control的值为private时,就认可只有发起请求的客户端能够缓存,作为代理服务节点是不能够缓存的。如为public时,代理服务器也可以缓存。
3、max-age:缓存的内容将在xxx秒后失效
这个意思就是在客户端收到信息后,信息会缓存xxx秒;过了xxx秒客户端必须重新获取信息。
4、no-store:不缓存请求的任何返回内容
不缓存请求返回的任何内容
5、no-cache:强制向服务器端再验证一次
no-cache和no-store的区别就是,no-cache会缓存请求返回的内容,而no-store不缓存;但no-cache时,在下次