HTTP缓存机制
一、缓存是什么
缓存是一种保存资源副本并在下次请求时直接使用该副本的技术
缓存需要合理配置,并不是所有的资源都是永久不变的,他是有生命周期的(不能缓存过期的资源)
1、无缓存机制
-
对互联网的带宽造成比较大的压力
-
对服务器的运行造成比较大的压力
2、缓存机制优势
-
缓解服务器端的资源消耗和运行压力,提升服务器端的整体性能
-
减少服务器端资源加载的延迟,进而减少显示某个资源所用的时间
-
减少对带宽造成的压力,避免网络阻塞问题的出现
-
web站点变得更具有响应性
二、缓存应用
常见的HTTP缓存只能存储GET响应
- 检索请求的成果响应:响应状态码为200,则成果
- 不变的重定向:响应状态码为301
- 错误响应:响应状态码为404
- 不完全的响应:响应状态码为206,只返回局部的信息
- 除了GET请求外,如果匹配到作为一个已被定义的cache键名的响应
三、HTTP缓存机制
1、私有缓存
只能用于单独用户
Cache-Control:private
2、共享缓存
可以被多个用户使用
Cache-Control:public
四、缓存控制
1、Cache-control头
-
禁止进行缓存
Cache-Control:no-store Cache-Control:no-cache,no-store,must-revalidate
-
强制确认缓存
Cache-Control:no-cache
-
缓存过期机制(时间:一天)
Cache-Control:max-age=31536000
-
缓存验证确认
Cache-Control:must-revalidate
2、Pragma头
是HTTP1.0定义的一个header属性
通常定义Pragma以向后兼容基于HTTP1.0的客户端
Pragma:no-cache
3、Expires头
expires响应头包含日期时间,在此时候,响应过期
- 无效的日期,比如0代表过去的日期,即该资源已经过期
- 如果在Cache-Control响应头设置了max-age或者s-max-age指令,那么expires头会被忽略