浏览器的缓存:
1. 先根据这个资源的一线http header 判断他是否强缓存,如果是,则直接从本地获取缓存资源,
不会发请求到服务器;
2. 当强缓存没有缓存时,客户端发送请求到服务器,服务器通过另一线request header验证这个资源是否协商缓存,
称为http在验证,如果没有,服务器将请求返回,但不会返回资源,而是告诉客户端直接从缓存中获取,
客户端收到返回后就 会缓存中获取资源;
3. 强缓存和协商缓存共同之处在与,如果没有缓存,服务器都不会返回资源;
4. 区别是: 强缓存不对发送请求到服务器,但协商缓存会;
5. 当协商缓存也没有缓存时,服务器就会将发送回客户端;
6. 当 ctrl+F5 强制刷新网页时,直接从服务器加载,跳过强缓存和协商缓存;
7. 当F5刷新网页时,跳过强缓存,但是会检查协商缓存;
强缓存:
1、 Expires(改字段 http1.0 时的规范,值为一个绝对时间的GMT 格式的时间字符串,代表缓存资源的过期时间):
2、 Cache-Control:max-age(改字段是 http1.1的规范,强缓存利用max-age 值来判断缓存资源的(协商缓存)生命周期,它 的值 单位为秒);
协商缓存:
1. Last-Modified
(值为资源***更新时间,随服务器reponse);
2. if-Modified-Since
(通过比较两个时间来判断资源在两次请求期间是否有过修改,如过没有修改,则***协商缓存);
3. ETage
(表示资源内容的唯一表示,随服务器response返回);
4. if-Node-Match
(服务器通过比较请求头部的if-Node-Match 与当前资源的ETag是否一质来判断资源是否在量词请求
之间有过修改,如果没有修改,则*** 协商缓存)