服務器接收到請求,對比請求頭中攜帶的特徵值,與服務器中頁面的特徵值是否一致。若是特徵值沒有變化,則認爲該頁面內容未發生變化,只返回 304 狀態碼的響應頭,響應體爲空。css
對於緩存過的頁面,該頁面的「URL的直接資源」會進行 304 處理,頁面中須要加載的資源將進行 200 form cache 處理html
http://www.mongoosejs.net/docs/schematypes.html
這個頁面。前端
http://www.mongoosejs.net/docs/schematypes.html
直接指向的 html, 即該頁面的「URL的直接資源」,會進行 304 處理。爲何「其餘資源」不像「URL的直接資源」那樣,訪問服務器判斷更新?不訪問怎麼知道有沒有更新呢?瀏覽器
?v=20191120122038
。瀏覽器也會當作新的資源。從服務器加載。服務端經過響應頭告訴瀏覽器,「接下來的一段時間」內,直接使用緩存內容。緩存
(http1.0)服務器
Thu, 21 Nov 2019 00:10:44 GMT
,這代表該資源於 2019年11月21日 00時11分44秒過時。在該時間點以前訪問,則讓瀏覽器直接從緩存上取。(http1.1)網絡
Cache-Control: public, max-age=31536000
,其中 max-age=31536000
就是告知瀏覽器,在接收到該文件那一刻算起的 31536000 秒內有效,直接從瀏覽器緩存上取。
瀏覽器會向服務端發起http請求,而後服務端告訴瀏覽器文件未改變,讓瀏覽器使用本地緩存。使用 Ctrl+F5強制刷新可使得緩存無效併發
(http1.0)框架
(http1.1)E-tag/If-None-Matchmongoose