依据webkit资本的分类
webkit的资本分类重要分为两大类:主资本和派生资本。
- 主资本:比方HTML页面,或许下载项,对应代码中的类是
MainResourceLoader
。 - 派生资本:比方HTML页面中内嵌的图片或许剧本链接,对应代码中的类是
SubresourceLoader
。
依据http状况码分类
200 (from memory cache)
200 (from disk cache)
304 (Not Modified)
200 (from memory cache)
不接见服务器,直接读缓存,从内存中读取缓存。此时的数据时缓存到内存中的,当kill历程后,也就是浏览器封闭今后,数据将不存在。
虽然Webkit支撑
memoryCache
,然则也只是针对
派生资本,它对应的类为
CachedResource
,用于保留原始数据(比方
CSS
,
JS
等),以及解码过的图片数据。
200 (from disk cache)
不接见服务器,直接从磁盘中读取缓存,当kill历程时,数据照样存在。
它的直接操纵对象为CurlCacheManager
。
这类体式格局也只能缓存
派生资本。它的存储情势为一个
index.dat
文件,纪录存储数据的url
,然后再离别存储该url
的response信息和content内容。Response信息最大作用就是用于推断服务器上该url的content内容是不是被修正。详细详见:
Last-Modified
304 (Not Modified)
接见服务器,发明数据没有
更新,服务器返回此状况码。然后从缓存中读取数据。
至于什么时候运用当地缓存,什么时候会接见服务器304,这就和服务器在要求返回中的Header字段有关了。附上
我的HTTP进修笔记。
http header
max-age
web中的文件被用户接见(要求)后的存活时候,是个相对的值,相对Request_time(要求时候)
Expires
Expires指定的时候依据服务器设置可能有两种:
- 文件末了接见时候
- 文件相对修正时候
假如max-age和Expires同时存在,则被Cache-Control的max-age掩盖
Last-modified
WEB 服务器以为对象的末了修正时候,比方文件的末了修正时候,动态页面的末了发生时候
ETag
对象(比方URL)的标志值,就一个对象而言,文件被修正,Etag也会修正
Cache-Control
简朴明白,强缓存
三级缓存道理
- 先去内存看,假如有,直接加载
- 假如内存没有,择取硬盘猎取,假如有直接加载
- 假如硬盘也没有,那末就举行收集要求
- 加载到的资本缓存到硬盘和内存
结论
援用网上图片