200 OK(from memory cache)和 200 OK(from disk cache)
200 OK(from memory cache)内存缓存
不访问服务器,直接从内存中读取缓存。
此时获取的数据是缓存到内存中的,当kill进程后(浏览器关闭),数据将不存在(资源被释放掉了)。
如果再次打开页面时,不会出现200 OK(from memory cache)。
特点
- 内存缓存容量小
- 快速读取:内存缓存会将编译解析后的文件,直接存入该进程的内存中,占据该进程一定的内存资源,以方便下次运行使用时的快速读取
- 时效性:缓存时效性很短,会随着进程的释放而释放
200 OK(from disk cache)硬盘缓存
不访问服务器,直接从磁盘中读取缓存,当kill进程后(关闭浏览器),数据还存在。
下次打开页面还是from disk cache。
原理
硬盘缓存是直接将缓存写入硬盘文件中,读取缓存需要对该缓存存放的硬盘文件进行I/O操作,然后重新解析该缓存内容,读取复杂,速度比内存缓存慢。
容量
硬盘缓存容量大
304 Not Modified
访问服务器,发现数据没有更新,服务器返回此状态码。然后,从缓存中读取数据。
几种状态对比
状态 | 类型 | 说明 |
---|---|---|
200 | form memory cache | 不请求网络资源,资源在内存当中,一般脚本、字体、图片会存在内存当中 |
200 | form disk ceche | 不请求网络资源,在磁盘当中,一般非脚本会存在磁盘当中,如css等 |
200 | 资源大小数值 | 从服务器下载最新资源 |
304 | 报文大小 | 请求服务端发现资源没更新,使用本地资源 |
样式表一般在磁盘中,不会缓存到内存中去,因为CSS样式加载一次即可渲染出网页。但是,脚本却可能随时会执行,如果脚本在磁盘当中,在执行该脚本需要从磁盘中取到内存当中来。这样IO开销比较大,有可能会导致浏览器失去响应。因此,脚本一般在内存中。
对于大文件来说,大概率是不存储在内存中的,反之优先。当前系统内存使用率高的话,文件优先存储进硬盘。
在浏览器中,浏览器会在js和图片等文件解析执行后直接存入内存缓存中,那么当刷新页面时只需直接从内存缓存中读取(from memory cache);而css文件则会存入硬盘文件中,所以每次渲染页面都需要从硬盘读取缓存(from disk cache)。
三级缓存原理
先查找内存,如果有,直接从内存中加载
如果内存没有,则去硬盘获取,如果有直接加载
如果硬盘也没有,那么就进行网络请求
加载到的资源缓存到硬盘和内存
浏览器运行时是由几个进程协作的,所以操作系统为了节省内存,会把一部分内存里的资源交换回磁盘的交换区,当然交换是有策略的,比如最常用的就是LRU。所以缓存资源不过期的时候,如果资源在内存那么就from memory,如果只有在磁盘上就from disk。
示例:
加载一个图片资源顺序:
访问 -> 200 -> 退出浏览器
再次进入-> 200(from disk cache) -> 刷新 -> 200(from memory cache)
禁止200缓存方法
禁止200 OK (from disk cache) 这个缓存的方法是,ajax 请求是带上参数 cache: false。
200 OK(from memory cache)和 200 OK(from disk cache)相关推荐
- 内存缓存(from memory cache)和硬盘缓存(from disk cache) 的区别
引言 ?命中强制缓存时,资源会显示 from memory cache or from disk cache 两者的区别 内存缓存(from memory cache) 内存缓存具有两个特点,分别是快 ...
- 浏览器缓存:memory cache、disk cache、强缓存协商缓存等概念
文章目录 分类 memory cache disk cache Service Worker Push Cache 缓存过程 强缓存 1.Expires 2.Cache-Control Expires ...
- 浏览器缓存(一):强缓存 MEMORY CACHE 和 DISK CACHE
关于memory cache 和 disk cache 随便浏览一个网站: 首次打开,或者开启浏览器的 Disable Cache(浏览器的Network下, 与Preserve log同级别),在s ...
- 聊一聊缓存 [from memory cache 和 from disk cache]
今天看到了一个问题,如果浏览器关闭了再打开, 请求还是from cache吗? 笼统的说yes 现在简单的来分析一下,首先,大家可以想一下,浏览器的缓存存放在哪里,如何在浏览器中判断强制缓存是否生效 ...
- 浏览器缓存 from memory cache与from disk cache详解
在chrome浏览器中的控制台Network中size栏通常会有三种状态 from memory cache from disk cache 资源本身的大小(如:1.5k) 那么问题来了 三种区别在哪 ...
- 浏览器Disk Cache磁盘缓存及其协商缓存、及原生App和浏览器实现缓存的差异
浏览器Disk Cache磁盘缓存及其协商缓存.及原生App和浏览器实现缓存的差异 目录 浏览器Disk Cache磁盘缓存及其协商缓存.及原生App和浏览器实现缓存的差异 1.Memory Cach ...
- Status Code:200 OK (from disk cache)和304的区别,以及怎么禁止缓存
有时候缓存是 200 OK (from disk cache)有时候会是 304 ? 看运维是否移除了 Entity Tag.移除了,就总是 200 OK (from cache).没有移除,就两者交 ...
- 请求数据出现200(from disk cache)
当请求数据时为啥请求成功了就是不返回结果呢 请求数据明明显示200成功了,为什么返回没有结果???结果发现200后面跟着from disk cache,这是个什么鬼??? 看这个意思好像是缓存的问题, ...
- Chrome中的from memory cache与from disk cache
文章目录 前言 一.浏览器Network的Size列 二.三级缓存原理 三.HTTP状态码及区别 四.不同浏览器资源加载策略 前言 在Chrome开发者工具页面中,有Network一栏,如下图所示: ...
- memory cache 和 disk cache
from memory cache 和 from disk cache 最近在优化Vue项目,因此打开网页,按下F12.发现很多js,css得下载来自于 memory cache,引申出问题:请求时浏 ...
最新文章
- 太酷啦!我在A4纸上看宫崎骏动画
- 自动驾驶国家标准将出台,2021年是L3级自动驾驶汽车元年?
- 【枭·音频】注入灵魂—《暗影火炬城》角色语音后期处理
- 编译原理 python_Python局部变量编译原理
- 由于找不到appvisvsubsystems32.dll_找茬游戏大全:我找东西贼快!小清新找茬游戏小程序,点开既玩...
- C++:类访问修饰符
- 鸿蒙系统深度解析,深度解析鸿蒙内核最重要的结构体
- Python常用图像处理
- 每天Leetcode 刷题 初级算法篇-缺失数字
- [2018.03.29 T2] 公交旅行
- python+pyqt4实现QQ自动发送信息
- qq空间留言板删除 php,qq批量删除空间留言及说说
- Java中使用Protocol Buffer
- 2019信用卡权益总结之十三:延误险
- 微信小程序——云开发|计费方式调整大家怎么看?
- 在项目中实现多数据源和读写分离的配置
- com.android.backupconfirm,使用ADB停用一些自己讨厌的东西记录备忘
- 当鼠标移动到表单上,改变表单的颜色
- 文件管理系统FastDFS详解
- 记录一次docker安装遇到的坑
热门文章
- 刘强东的高调,给京东带来了流量,也给京东带来了灾难
- 我爱淘二次冲刺阶段6
- [转]内向的人如何建立人际网络
- 【数字化常识】浅谈互联网企业的利器——“网络效应”
- 关于python中的三个点【...】
- java heap space 什么意思_java heap space是什么意思?
- S5800/S5820X系列交换机GRE隧道
- 计算机时代汉字书写有了新的方式,网络时代的汉字书写
- DRILLNET 2.0------第二十三章 井控压井单模型
- 二层交换机、三层交换机和路由器的区别