Web前端中的静态资本缓存笔记

依据webkit资本的分类

webkit的资本分类重要分为两大类:主资本和派生资本。

  • 主资本:比方HTML页面,或许下载项,对应代码中的类是MainResourceLoader
  • 派生资本:比方HTML页面中内嵌的图片或许剧本链接,对应代码中的类是SubresourceLoader

依据http状况码分类

  1. 200 (from memory cache)
  2. 200 (from disk cache)
  3. 304 (Not Modified)

200 (from memory cache)

不接见服务器,直接读缓存,从内存中读取缓存。此时的数据时缓存到内存中的,当kill历程后,也就是浏览器封闭今后,数据将不存在。

虽然Webkit支撑
memoryCache,然则也只是针对
派生资本,它对应的类为
CachedResource,用于保留原始数据(比方
CSS
JS等),以及解码过的图片数据。

200 (from disk cache)

不接见服务器,直接从磁盘中读取缓存,当kill历程时,数据照样存在。

它的直接操纵对象为CurlCacheManager

这类体式格局也只能缓存
派生资本

它的存储情势为一个index.dat文件,纪录存储数据的url,然后再离别存储该urlresponse信息content内容。Response信息最大作用就是用于推断服务器上该url的content内容是不是被修正。详细详见:
Last-Modified

304 (Not Modified)

接见服务器,发明数据没有

更新,服务器返回此状况码。然后从缓存中读取数据。

至于什么时候运用当地缓存,什么时候会接见服务器304,这就和服务器在要求返回中的Header字段有关了。附上
我的HTTP进修笔记

http header

max-age

web中的文件被用户接见(要求)后的存活时候,是个相对的值,相对Request_time(要求时候)

Expires

Expires指定的时候依据服务器设置可能有两种:

  1. 文件末了接见时候
  2. 文件相对修正时候

假如max-age和Expires同时存在,则被Cache-Control的max-age掩盖

Last-modified

WEB 服务器以为对象的末了修正时候,比方文件的末了修正时候,动态页面的末了发生时候

ETag

对象(比方URL)的标志值,就一个对象而言,文件被修正,Etag也会修正

Cache-Control

简朴明白,强缓存

三级缓存道理

  1. 先去内存看,假如有,直接加载
  2. 假如内存没有,择取硬盘猎取,假如有直接加载
  3. 假如硬盘也没有,那末就举行收集要求
  4. 加载到的资本缓存到硬盘和内存

结论

援用网上图片
《Web前端中的静态资本缓存笔记》

    原文作者:an_l
    原文地址: https://segmentfault.com/a/1190000013464971
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞