(三)Web缓存当进入到互联网时代后,系统的瓶颈往往不在CPU、内存或磁盘,而在网络本身。一次跨国HTTP请求可能需要几十毫秒甚至几百毫秒,而CPU一次运算只需纳秒级,SSD读取也仅需百微秒级。Web缓存就是想办法让数据尽量靠近使用它的终端用户,解决此时凸显的网络访问慢、跨地域访问开销大的问题。1.浏览器缓存(Browser Cache)浏览器缓存解决的是同一用户反复访问相同资源时产生的重复网络请求问题。它在用户设备上临时存储常用静态元素(HTML、CSS、JS、图片、字体、视频片段等)。当用户第一次访问一个网站时,浏览器会下载并存储这些数据。当用户重新访问这个网站时,浏览器首先会检查缓存中的现有页面版本,这样就减少了重复下载需求,提供了更快的浏览体验。但如果网站自用户上次访问以来已经更新过,那么浏览器会重新下载并缓存新信息。浏览器缓存有两种实现策略:(1)强缓存(Strong Cache)浏览器自主根据响应头判断资源是否仍然有效,如果有效,浏览器直接在本地读取缓存资源,完全不发起网络请求。主要机制与头部字段①Cache-Controlmax-age=seconds:表示资源在指定秒数内都是新鲜的,不需要去服务器。例如:Cache-Control: max-age=3600 表示在未来3600 秒内,都可以直接从缓存读取资源。②Expires该字段指定了一个绝对过期时间点。只要当前时间早于该时间,浏览器就使用本地缓存。缺点是依赖客户端本地时间,会因为时钟不同步而产生误判。在Cache-Control和Expires同时存在时,Cache-Control 优先级更高。强缓存可完全跳过服务器验证,是最省网络、最快的缓存方式。(2)协商缓存(Negotiated Cache/ Conditional Cache)当强缓存失效或未命中时,浏览器会尝试协商缓存机制。与强缓存不同的是:协商缓存仍然会向服务器发送一个请求,带上上次缓存信息,服务器告知是否资源发生改变。主要机制与字段对浏览器发送头服务器返回头