NitroPack具有先进的缓存机制,NitroPack官方给出了4种解决策略。

(1)Smart cache invalidation(智能缓存失效 )。缓存失效指的是网站页面内容被缓存后一直保存在缓存数据中,直到该缓存数据过期或者被人为更新或清理。一般情况下,会采用HTTP标头来控制缓存数据的过期时间,有点类似于WP-Rocket和WP Super Cache中的发布新内容自动缓存功能。

(2)Automatic cache warm up(自动缓存预热)。NitroPack的缓存预热功能可以在页面清除或者页面失效后为页面安排新的优化,还可以为任何已经清理内容的页面安排新的优化。

因为网页内容也存在过期时间节点,所以很多WordPress的缓存优化插件配备了自动定期删除缓存功能,但不一定每个插件都具备或者设置了缓存预热功能。一方面是因为每个网站页面并不一定具有相同的内容过期头设置,另外一方面是因为大型网站成千上万个网页统一生成新一批内容缓存,所耗费的资源较大。所以WP-Rocket等速度优化插件会提供手动预缓存加载功能。当然,也可以用爬虫的方式对网站中的每个内容进行爬取,从而让缓存优化插件根据爬虫的内容加载请求自动生成当前新的页面内容缓存,而NitroPack插件直接以自动补全的形式解决了手动或者爬虫在对内容更新或定期缓存清除后的预生成问题。

(3)Device and cookie-aware caching(设备和 Cookie感知缓存 )。简单地说,设备和 Cookie感知缓存就是更加有针对性的内存缓存服务。

christiann-koepke-7HUDNDNkxRk-unsplash.jpg

当某个用户使用设备第一次访问网站时,其浏览器发送的是简单的HTTP报文。当该报文到达网站的服务器之后,服务器会生成一个识别码(该识别码是唯一的、不可重复的 ),并将其与用户的一些相关信息建立对应关系,然后存储在网站服务器的数据库中。服务器将该用户请求加载的页面内容联合服务器的主机名与之前生成的唯一识别码返回到该用户的浏览器,这样就完成了第一次的内容请求与交付。

当该用户第二次试图访问网站页面内容的时候,它的浏览器就会从自己的Cookie文件夹中获取之前访问网站页面时得到的那个识别码,并放在HTTP请求报文中。网站服务器收到该HTTP报文之后,发现了该识别码并且与自己服务器数据库中创建的识别码配对,这个过程就叫作Cookie感知,而整体的这种感知行为可以称之为Web缓存。Web缓存可以大大减少用户对内容请求的响应时间,提高网站页面的打开速度,提升用户的页面体验。

(4)Integrate with 3rd-party cache(与第三方缓存集成)。NitroPack能够轻松地兼容第三方的缓存插件,如Varnish、NGINX Cache、Cloudflare、Sucuri和Cloudways Cache。老版本的NitroPack一直存在不能和第三方缓存插件兼容的情况,如前面提到的WP-Rocket。2022年的新版本NitroPack在兼容性方面做了很大的拓展和提升,将市面上主流的第三方缓存插件工作机制与自身的速度优化内核做了调整。

(本文内容根据网络资料整理,出于传递更多信息之目的,不代表连连国际赞同其观点和立场。)