http緩存分為強制緩存和對比緩存
強制緩存時, 客戶端先判斷本地緩存是否有效(http/1.1通過Cache-Control設(shè)置)。如果有效,則直接使用本地緩存,不會向服務(wù)器發(fā)起請求;如果無效,則向服務(wù)器請求,然后將資源和緩存規(guī)則保存在本地中。
對比緩存時, 先獲取本地緩存數(shù)據(jù)的標(biāo)識, 然后向服務(wù)器發(fā)起帶有本地緩存標(biāo)識(if-Modify-Since/if-None-Match)的請求,服務(wù)器通過對比服務(wù)器最后一次修改的時間和if-Modify-Since, 如果服務(wù)器最后一次修改的時間大于if-Modify-Since,說明緩存失效了, 則返回新的文件和緩存規(guī)則;否則,則返回304, 已經(jīng)header信息, 返回響應(yīng)體為空。服務(wù)器返回資源和資源的信息(eTag, last-Modify).