Node.JS緩存處理分為客戶端和服務端兩個部分。
客戶端的緩存主要是利用瀏覽器對HTTP協議響應頭中cache-control和expires字段的支持。瀏覽器在得到明確的響應頭后,會將文件緩存在本地,依據cache-control和expires的值進行相應的過期策略。這是的重復訪問的過程中,瀏覽器可以從本地緩存中讀取文件,而無需從網絡讀取文件,提升加載速度,也可以降低對服務器的壓力。
正是因為V8有內存限制的原因,作為緩存,如果沒有良好的過期策略,緩存將會無限增加,知道內存溢出。所以在staticCache中間件中設置了存儲數量和單個文件的大小,可以有效抑制緩存區的大小。
在支持MIME類型的靜態文件服務器中,任何靜態文件只要丟進assets目錄之后就可以達到了Apache服務器的相同效果,但是當用戶在每次請求的時候,服務器每次都要調用fs.readFile方法去讀取硬盤上的文件的。當服務器的請求量上漲,硬盤IO就會吃不消。