当前位置: 首页 > Web前端 > HTML

由memoryCache和diskCache产生的浏览器缓存机制的思考

时间:2023-04-02 14:25:56 HTML

关于memoryCache和diskCache产生的浏览器缓存机制的思考还是有一些区别的!webkit资源的分类webkit资源的分类主要分为两大类:主资源和派生资源http状态码200frommemorycache不访问服务器,直接读取缓存,从内存中读取缓存。此时的数据缓存在内存中。kill进程后,即浏览器关闭后,数据将不存在。但是这种方法只能缓存派生的资源。200fromdiskcache不访问服务器,直接读取缓存,从磁盘读取缓存,当进程被kill时,数据依然存在。该方法只能缓存派生资源304NotModified访问服务器发现数据未更新,服务器返回此状态码。然后从缓存中读取数据。但是这里有一个困惑,如何判断是从内存缓存还是304三级缓存原理先去内存中看,如果有,直接加载如果没有内存,选择硬盘获取,如果有直接加载,如果没有硬盘,则执行网络请求加载接收到的资源缓存到硬盘和内存中,所以我们可以举例说明这种现象:访问->200->退出浏览器,进入->200(fromdiskcache)->refresh->200(frommemorycache)httpheadermax-ageweb中文件被用户访问(请求)后的存活时间是一个相对值,相对于Request_time(请求时间)ExpiresExpires根据服务器配置可能有两种时间:文件的最后访问时间和文件的绝对修改时间如果max-age和Expires同时存在,会被Cache的max-age覆盖-controllast-modifiedWEB服务器考虑对象的最后修改时间,比如文件的最后修改时间,动态页面的最后生成时间。ETag对象(如URL)的标志值,对于一个对象而言,如果文件被修改,Etag也会修改Cache-Control。简单理解,强缓存,最终结论看图(来自网络)