HTTP的场景实践:任选一个浏览器,对于其涉及的请求中的缓存策略展开具体分析



1. 强缓存:
-
Cache-Control
用于指定缓存的最长有效时间。 -
Expires
用于指定资源过期的日期。
2. 协商缓存:
-
ETag
用于标识资源的唯一标识符,浏览器会将前一次请求时获得的ETag值发送到服务器,由服务器判断资源是否发生了变化。 -
Last-Modified
表示资源的最后修改时间,浏览器会将前一次请求时获得的最后修改时间发送到服务器,由服务器根据已有的最后修改时间决定是否返回资源内容。
3. HTTP/2缓存:
-
HTTP/2通过多路复用技术,在同个连接上同时传送多个请求和响应,减少了网络请求的延迟。
-
HTTP/2还支持服务器推送(Server Push)技术,服务器可以在浏览器请求之前主动将一些资源推送给浏览器,提前缓存这些资源。
4. Service Worker:
- Service Worker能够拦截网络请求并缓存响应,当用户离线时,可以从本地缓存中获取资源,提供离线浏览能力。
百度浏览器的缓存策略:


