浏览器缓存 from memory cache与from disk cache详解

在chrome浏览器中的控制台Network中size栏一般会有三种状态css

1.from memory cachechrome

2.from disk cache浏览器

3.资源自己的大小(如:1.5k)缓存

那么问题来了服务器

1.三种区别在哪里;2.浏览器采起不一样措施的原则是什么;3.其余浏览器的策略网络

下面分别讲述以上三个问题spa

1.三种区别在哪.net

from memory cache:字面理解是从内存中,其实也是字面的含义,这个资源是直接从内存中拿到的,不会请求服务器通常已经加载过该资源且缓存在了内存当中,当关闭该页面时,此资源就被内存释放掉了,再次从新打开相同页面时不会出现from memory cache的状况orm

from disk cache:同上相似,此资源是从磁盘当中取出的,也是在已经在以前的某个时间加载过该资源,不会请求服务器可是此资源不会随着该页面的关闭而释放掉,由于是存在硬盘当中的,下次打开仍会from disk cacheblog

资源自己大小数值:当http状态为200是实实在在从浏览器获取的资源,当http状态为304时该数字是与服务端通讯报文的大小,并非该资源自己的大小,该资源是从本地获取的

2.chrome采起措施的准则

何时是from memory cache 何时是from disk cache 呢?

即哪些资源会放在内存当中,哪些资源浏览器会放在磁盘上呢,结果以下下表所示

统计表
状态 类型 说明
200 form memory cache

不请求网络资源,资源在内存当中

200 form disk ceche 不请求网络资源,在磁盘当中
200 资源大小数值 从服务器下载最新资源
304 报文大小 请求服务端发现资源没有更新,使用本地资源

以上是chrome在请求资源是最多见的两种http状态码

因而可知样式表通常在磁盘中,不会缓存到内存中去,由于css样式加载一次便可渲染出网页

可是脚本却可能随时会执行,若是脚本在磁盘当中,在执行该脚本须要从磁盘中取到内存当中来

这样的IO开销是比较大的,有可能会致使浏览器失去响应

3.不一样浏览器策略是否一致

以上的数据及统计都是在chrome浏览器下进行的

在Firefox下并无from memory cache以及from disk cache的状态展示

相同的资源在chrome下是from disk/memory cache,可是Firefox通通是304状态码

即Firefox下会缓存资源,可是每次都会请求服务器对比当前缓存是否更改,chrome不请求服务器,直接拿过来用

这也是为啥chrome比较快的缘由之一吧,

固然以上是粗略的研究chrome资源的获取策略,至于chrome如何保证资源的更新,

即何时200,何时304还须要更深刻的研究 参考:https://blog.csdn.net/garrettzxd/article/details/80684880

相关文章
相关标签/搜索