Node.JS缓存处理分为客户端和服务端两个部分。
客户端的缓存主要是利用浏览器对HTTP协议响应头中cache-control和expires字段的支持。浏览器在得到明确的响应头后,会将文件缓存在本地,依据cache-control和expires的值进行相应的过期策略。这是的重复访问的过程中,浏览器可以从本地缓存中读取文件,而无需从网络读取文件,提升加载速度,也可以降低对服务器的压力。
正是因为V8有内存限制的原因,作为缓存,如果没有良好的过期策略,缓存将会无限增加,知道内存溢出。所以在staticCache中间件中设置了存储数量和单个文件的大小,可以有效抑制缓存区的大小。
在支持MIME类型的静态文件服务器中,任何静态文件只要丢进assets目录之后就可以达到了Apache服务器的相同效果,但是当用户在每次请求的时候,服务器每次都要调用fs.readFile方法去读取硬盘上的文件的。当服务器的请求量上涨,硬盘IO就会吃不消。