华为浏览器(Huawei Browser)是一款基于Chromium内核开发的终端浏览器
今天讲一下浏览器中的HTTP缓存策略。目前主流浏览器主要采用强缓存和协商缓存两种策略。
强缓存(Expires 和 Cache-Control)
强缓存,指的是 让浏览器强制缓存服务端提供的资源。
在浏览器 devtool 的 network 面板,我们看到 from disk cache的字样,代表这个资源并没有去发送请求,而是使用了来自硬盘的缓存。
- Expires:与其他浏览器一样,服务器可以设置
Expires头信息来定义缓存的过期时间。华为浏览器会根据该时间戳来判断是否使用缓存。 - Cache-Control:与其他浏览器一样,华为浏览器也支持
Cache-Control头信息。例如,max-age指定了缓存的最大有效时间,public表示资源可以被公共缓存服务器缓存,private表示仅允许浏览器缓存等等。
协商缓存(Last-Modified 和 ETag)
协商缓存,是在缓存过期的情况下,客户端和服务端协商,确认客户端缓存是否需要更新。
- Last-Modified:服务器通过设置 Last-Modified 头信息来告诉浏览器资源的最后修改时间。当浏览器再次请求相同资源时,会发送 If-Modified-Since 头信息,如果服务器返回 304 状态码表示资源未修改,则可以直接使用缓存的副本。
- ETag:服务器可以通过设置 ETag 头信息来唯一标识资源的版本。当浏览器再次请求相同资源时,会发送 If-None-Match 头信息,如果服务器返回 304 状态码表示资源未修改,则可以直接使用缓存的副本。
PWA 缓存:
华为浏览器作为一款支持 Progressive Web Applications(PWA)的浏览器,可以通过 Service Worker 技术实现离线缓存功能。开发者可以注册 Service Worker 并配置缓存策略来实现离线访问已缓存的资源。
结尾
综上所述,华为浏览器也采用了强缓存和协商缓存策略,与其他主流浏览器类似。此外,作为一款支持 PWA 的浏览器,华为浏览器还提供了 Service Worker 技术,以便开发者能够更好地控制和管理离线缓存的资源。这些缓存策略都有助于提高页面加载速度和减少对服务器资源的消耗。