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