webkit的資源分類主要分爲兩大類:主資源和派生資源。web
MainResourceLoader
。SubresourceLoader
。200 (from memory cache)
200 (from disk cache)
304 (Not Modified)
不訪問服務器,直接讀緩存,從內存中讀取緩存。此時的數據時緩存到內存中的,當kill進程後,也就是瀏覽器關閉之後,數據將不存在。segmentfault
雖然Webkit支持memoryCache
,可是也只是針對 派生資源,它對應的類爲CachedResource
,用於保存原始數據(好比CSS
,JS
等),以及解碼過的圖片數據。
不訪問服務器,直接從磁盤中讀取緩存,當kill進程時,數據仍是存在。瀏覽器
它的直接操做對象爲CurlCacheManager
。緩存
這種方式也只能緩存 派生資源。它的存儲形式爲一個
index.dat
文件,記錄存儲數據的url
,而後再分別存儲該url
的response信息和content內容。Response信息最大做用就是用於判斷服務器上該url的content內容是否被修改。具體詳見:
Last-Modified服務器
訪問服務器,發現數據沒有網絡
更新,服務器返回此狀態碼。而後從緩存中讀取數據。學習
至於什麼時候使用本地緩存,什麼時候會訪問服務器304,這就和服務器在請求返回中的Header字段有關了。附上 個人HTTP學習筆記。
web中的文件被用戶訪問(請求)後的存活時間,是個相對的值,相對Request_time(請求時間)url
Expires指定的時間根據服務器配置可能有兩種:spa
若是max-age和Expires同時存在,則被Cache-Control的max-age覆蓋3d
WEB 服務器認爲對象的最後修改時間,好比文件的最後修改時間,動態頁面的最後產生時間
對象(好比URL)的標誌值,就一個對象而言,文件被修改,Etag也會修改
簡單理解,強緩存
引用網上圖片