协商缓存 和 强制缓存
总是记不住,今天手动记录下来:
1. 强制缓存头: Cache-Control
cache-control 是响应头 ,内容可以是
Cache-Control: 'max-age=3600, public, immutable';
2. 协商缓存
If-Modified-Since:Tue, 15 Sep 2020 11:12:11 GMT 和 Last-Modified: Tue, 15 Sep 2020 11:35:48 GMT
构成一对,通过时间来标记
If-None-Match: W/"7a-17491770939" 和 ETag: W/"69-174918ca8ed"
构成一对,通过md5值来标记
如果命中强制缓存,则不会发起请求, 否则发起协商缓存。
引用一篇文章:
https://www.jianshu.com/p/9c95db596df5
另外平时在chrome下也能看到:
200 from memory cache
不访问服务器,直接读缓存,从内存中读取缓存。此时的数据时缓存到内存中的,当kill进程后,也就是浏览器关闭以后,数据将不存在。
但是这种方式只能缓存派生资源。
200 from disk cache
不访问服务器,直接读缓存,从磁盘中读取缓存,当kill进程时,数据还是存在。
这种方式也只能缓存派生资源
304 Not Modified
访问服务器,发现数据没有
更新,服务器返回此状态码。然后从缓存中读取数据。