浏览器缓存机制分两种
1. 强缓存
2. 协商缓存
强缓存包括:
Expires(1.0):ex拜尔丝
缓存过期时间,用来指定资源到期的时间,是服务器端的具体的时间点。也就是说,Expires=max-age + 请求时间
Cache-Control(1.1):开始啃臭
比如当 Cache-Control:max-age=300时,则代表在这个请求正确返回时间(浏览器也会记录下来)5分钟内再次加载资源,就会命中强缓存
Cache-Control与Expires的作用一致,存的都是秒数,都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据。只不过Cache-Control的选择更多,设置更细致,如果同时设置的话,其优先级高于Expires。
协商缓存包括:
存的话哈希值
协商缓存就是强制缓存失效后,浏览器携带缓存标识向服务器发起请求,让服务器判断资源是否已经更新了
,
- 若已更新,则返回更新后的资源;
- 若没有更新,则返回304状态,告诉浏览器可直接使用本地缓存的资源,
协商缓存就是强制缓存失效后,浏览器携带缓存标识向服务器发起请求,由服务器根据缓存标识决定是否使用缓存的过程,主要有以下两种情况:
Last-Modified(响应头1.0):
(值为最后更新时间,跟服务器response返回)
If-Modified-Since(请求头):
通过比较两个时间来判断资源在两期请求期间是否修改 没有修改 命中协商缓存