200 ok 几种状态

2023-11-08

浏览器加载资源成功一般会有几种状态

200 ok          ----  从原始服务器请求成功

200 ok from cache      ----

200 ok from disk cache  ----

200 ok from memory cache ----

304 not modified          ----  向服务器发送请求,验证新鲜度,足够新鲜,服务器会返回 304状态

 

from cache 表示客户端没有请求服务器, 直接使用浏览器本地缓存

1. 首先from cache  和 not modified的区别

from cache 浏览器没有和服务器确认,直接使用了缓存

not modified 是浏览器和服务器多确认了一次缓存有效性,再用的缓存。

 

那么,两者触发的时机有什么区别呢?200 OK (from cache) 是直接点击链接访问,输入网址按回车访问也能触发;而 304 Not Modified 是刷新页面时触发,或是设置了长缓存、但 Entity Tags 没有移除时触发。

直接访问有缓存的网站都触发 200 OK (from cache), 刷新浏览器则会触发 304 Not Modified,同一域名下,没有 Entity Tag 的资源直接访问,是 200 OK (from cache) 的结果,同一域名下,有 Entity Tag ,直接访问就会触发 304 Not Modified。

 

2. from memory cache 和 from disk cache 的区别

MemoryCache顾名思义,就是将资源缓存到内存中,等待下次访问时不需要重新下载资源,而直接从内存中获取。Webkit早已支持memoryCache。

    目前Webkit资源分成两类,一类是主资源,比如HTML页面,或者下载项,一类是派生资源,比如HTML页面中内嵌的图片或者脚本链接,分别对应代码中两个类:    MainResourceLoader和SubresourceLoader。虽然Webkit支持memoryCache,但是也只是针对派生资源,它对应的类为CachedResource,用于保存原始数据(比如CSS,JS等),以及解码过的图片数据。

 

diskCache顾名思义,就是将资源缓存到磁盘中,等待下次访问时不需要重新下载资源,而直接从磁盘中获取,它的直接操作对象为CurlCacheManager。它与memoryCache最大的区别在于,当退出进程时,内存中的数据会被清空,而磁盘的数据不会,所以,当下次再进入该进程时,该进程仍可以从diskCache中获得数据,而memoryCache则不行。

    diskCache与memoryCache相似之处就是也只能存储一些派生类资源文件。它的存储形式为一个index.dat文件,记录存储数据的url,然后再分别存储该url的response信息和content内容。Response信息最大作用就是用于判断服务器上该url的content内容是否被修改。具体详见:

 

 

 

 

 

 

参考连接:

http://div.io/topic/854

https://segmentfault.com/a/1190000008289847

http://blog.csdn.net/m632587166/article/details/50732205?locationNum=14

http://blog.csdn.net/longxibendi/article/details/41630389

转载于:https://www.cnblogs.com/tangyuu/p/6396644.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

200 ok 几种状态 的相关文章

  • 迭代变量并查找特定类型实例的技术

    我想迭代进程中内存中的变量 通过插件动态加载 并查找特定类型的实例 以前我可以找到特定类型 或内存中的所有类型 我可以创建类型的实例 我可以获取作为不同类型的字段包含的实例 但我无论如何都不知道只是 搜索 特定类型的实例 一种方法是使用 W
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • 以编程方式检查页面是否需要基于 web.config 设置进行身份验证

    我想知道是否有一种方法可以检查页面是否需要基于 web config 设置进行身份验证 基本上如果有这样的节点
  • 使用post方法将多个参数发送到asp.net core 3 mvc操作

    使用 http post 方法向 asp net mvc core 3 操作发送具有多个参数的 ajax 请求时存在问题 参数不绑定 在 dot net 框架 asp net web api 中存在类似的限制 但在 asp net mvc
  • C++:重写已弃用的虚拟方法时出现弃用警告

    我有一个纯虚拟类 它有一个纯虚拟方法 应该是const 但不幸的是不是 该接口位于库中 并且该类由单独项目中的其他几个类继承 我正在尝试使用这个方法const不会破坏兼容性 至少在一段时间内 但我找不到在非常量方法重载时产生警告的方法 以下
  • Clang 编译器 (x86):80 位长双精度

    我正在尝试在 x86 Windows 平台上使用本机 80 位长双精度 海湾合作委员会选项 mlong double 80 https gcc gnu org onlinedocs gcc x86 Options html似乎不适用于 cl
  • 如何使用recv()检测客户端是否仍然连接(并且没有挂起)?

    我写了一个多客户端服务器程序C on SuSE Linux 企业服务器 12 3 x86 64 我为每个客户端使用一个线程来接收数据 我的问题是 我使用一个终端来运行服务器 并使用其他几个终端来运行服务器telnet到我的服务器 作为客户端
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • 从多个类访问串行端口

    我正在尝试使用串行端口在 arduino 和 C 程序之间进行通信 我对 C 编程有点陌生 该程序有多种用户控制形式 每一个都需要访问串口来发送数据 我需要做的就是从每个类的主窗体中写入串行端口 我了解如何设置和写入串行端口 这是我的 Fo
  • 检查算术运算中的溢出情况[重复]

    这个问题在这里已经有答案了 可能的重复 检测 C C 中整数溢出的最佳方法 https stackoverflow com questions 199333 best way to detect integer overflow in c
  • ASP MVC:服务应该返回 IQueryable 的吗?

    你怎么认为 你的 DAO 应该返回一个 IQueryable 以便在你的控制器中使用它吗 不 您的控制器根本不应该处理任何复杂的逻辑 保持苗条身材 模型 而不是 DAO 应该将控制器返回给视图所需的所有内容 我认为在控制器类中看到查询 甚至
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • 基于xsd模式生成xml(使用.NET)

    我想根据我的 xsd 架构 cap xsd 生成 xml 文件 我找到了这篇文章并按照说明进行操作 使用 XSD 文件生成 XML 文件 https stackoverflow com questions 6530424 generatin
  • 生产代码中的 LRU 实现

    我有一些 C 代码 需要使用 LRU 技术实现缓存替换 目前我知道两种实现LRU缓存替换的方法 每次访问缓存数据时使用时间戳 最后比较替换时的时间戳 使用缓存项的堆栈 如果最近访问过它们 则将它们移动到顶部 因此最后底部将包含 LRU 候选
  • 将代码拆分为标头/源文件

    我从 Asio 的示例页面中获取了以下代码 class tcp connection public boost enable shared from this
  • 当前的 x86 架构是否支持非临时加载(来自“正常”内存)?

    我知道有关此主题的多个问题 但是 我没有看到任何明确的答案或任何基准测量 因此 我创建了一个处理两个整数数组的简单程序 第一个数组a非常大 64 MB 第二个数组b很小 无法放入 L1 缓存 程序迭代a并将其元素添加到相应的元素中b在模块化
  • 为什么拆箱枚举会产生奇怪的结果?

    考虑以下 Object box 5 int int int box int 5 int nullableInt box as int nullableInt 5 StringComparison enum StringComparison
  • 运算符“==”不能应用于“int”和“string”类型的操作数

    我正在编写一个程序 我想到了一个数字 然后计算机猜测了它 我一边尝试一边测试它 但我不断收到不应该出现的错误 错误是主题标题 我使用 Int Parse 来转换我的字符串 但我不知道为什么会收到错误 我知道它说 不能与整数一起使用 但我在网
  • 带重定向标准流的 C# + telnet 进程立即退出

    我正在尝试用 C 做一个 脚本化 telnet 项目 有点类似于Tcl期望 http expect nist gov 我需要为其启动 telnet 进程并重定向 和处理 其 stdin stdout 流 问题是 生成的 telnet 进程在
  • 实例化 Microsoft.Office.Interop.Excel.Application 对象时出现错误:800700c1

    实例化 Microsoft Office Interop Excel Application 以从 winforms 应用程序生成 Excel 时 出现以下错误 这之前是有效的 但突然间它停止工作了 尽管代码和 Excel 版本没有变化 我

随机推荐

  • TypeScript基本类型、类、封装、继承、泛型、接口、命名空间

    简介 前几篇介绍了Vue3的Composition API Vue Router pinia Vue3能更好支持TS 因此 本节将介绍TS 详细描述了TS的优缺点 安装 如何配置自动编译 tsconfig json的常用配置 使用webpa
  • HTML-CSS(四十一)animation动画

    animation属性 animation name 设置动画的名字 自定义的 animation duration 动画的持续时间 animation delay 动画的延迟时间 animatio iteration count 动画的重
  • 集合学习总结

    集合 1 java集合框架概述 1 集合 數組都是多個數據存儲操作的結構 簡稱java容器 說明 主要指的存儲是內存層面的存儲 不涉及到持久化的存儲 可以分為Collection和Map兩種 Collection接口 單列數據 定義了存取一
  • (GAE)Google App Engine入门程序——helloworld

    参考资料 http blog xuming net gae tutorial 官网例子 https developers google com appengine docs python gettingstartedpython27 hel
  • 编译器优化–4--消除无用和不可达代码

    编译器优化 4 消除无用和不可达代码 概述 有时候 程序包含的一些计算不具有外部可见的效应 如果编译器能够确定给定操作不会影响程序的结果 那么它完全可以消除该操作 大多数程序员都不会有意编写这种代码 但是 这种代码在大多数程序中作为编译器中
  • CSDN高校俱乐部介绍-CSDN高校俱乐部-专题视频课程

    CSDN高校俱乐部介绍 6621人已学习 课程介绍 本课程旨在让更多学生了解CSDN高校俱乐部的服务宗旨 活动形式和人才选拔模式 作为服务于当代大学生学习与成长的IT技术学习型组织 俱乐部有别于一般技术类社团 在活动内容 活动形式以及行业对
  • 嵌入式Linux驱动开发(I2C专题)(七)

    使用GPIO操作I2C设备 IMX6ULL 参考资料 Linux文档 Linux 5 4 Documentation devicetree bindings i2c i2c gpio yaml Linux 4 9 88 Documentat
  • ssm框架使用MybatisPlus在配置sqlSessionFactory时报“Cannot resolve class ‘MybatisSqlSessionFactoryBean‘”

    在百度搜索在配置时class引入的是 com baomidou mybatisplus spring MybatisSqlSessionFactoryBean 引入后报错 改成class com baomidou mybatisplus e
  • layui文档,最新文档地址,官网已经下线

    最新文档地址 官网已经下线了 http layui shagua wiki layuidoc doc index html
  • linux(ubuntu) git目录下设置显示内容

    gt vim bashrc 添加并退出 GIT PS1 SHOWDIRTYSTATE false GIT PS1 SHOWCOLORHINTS false PROMPT COMMAND git ps1 u h w gt source bas
  • 网络地址与直接广播地址有关计算

    一 已知IP地址和子网掩码 1 网络地址 网络号 IP 子网掩码 2 直接广播地址 网络地址 网络号不变 主机号变全1 3 主机号 IP 取反 子网掩码 网络号全0 4 子网内第一个可用IP地址 网络号 1 网络地址 1 5 主机数 2 n
  • C++ explicit关键字浅析

    explicit关键字 今天在看std thread的时候 发现他的构造函数是这样的 explicit thread Fn fn Args args explicit这个关键字很眼熟 因为在Qt中默认的构造函数也是用的这个关键字 expli
  • Unity 2D像素游戏序列帧动画制作规范

    一 问题背景 笔者遇到了很多很多跟美术策划协作的问题 首先声明本文不考虑SpriteAltas 也不绝对正确 仅供参考 错误可以在评论区指出我进行修改以免误导 我们可以清楚的看到跳跃后会出现角色跟碰撞器大小不一样的情况 这个时候如果我去碰右
  • 软件开发中的SD、SE、QA和RD是什么意思?

    2019独角兽企业重金招聘Python工程师标准 gt gt gt QA QA即英文QUALITY ASSURANCE 的简称 中文意思是品质保证 其在ISO8402 1994中的定义是 为了提供足够的信任表明实体能够满足品质要求 而在品质
  • “卷爆了“的IT互联网行业,为啥至今还有人头铁往里冲?

    细数互联网过往的发展史 造就了成千上万的企业家 创业者 众多职场人趋之若鹜地选择互联网行业 想从这个领域捞一桶金 但不知道从什么时候开始 一篇篇关于互联网红利消失 流量枯竭的文章接踵而至 现在转行互联网 做什么看起来都是那么困难 很多从业者
  • 有趣的数据结构算法3——单链表尾插法和头插法的实现

    有趣的数据结构算法3 单链表尾插法和头插法的实现 什么是单链表 头插法的实现 尾插法的实现 头插法实现代码 尾插法实现代码 GITHUB下载连接 以前学习C语言的时候 对于指针 链表什么的是最害怕的 但是现在 什么是单链表 单链表是一种链式
  • 在Visual Studio Code中使用CSSComb格式化CSS文件

    在Visual Studio Code中使用CSSComb格式化CSS文件 最近在使用Visual Studio Code 开始逐渐上手 发现非常好用 不管是在JS文件还是在HTML文件中 右键点击 都有 格式化文件 的菜单 帮助我们排版
  • linux查看服务端口号、查看端口(netstat、lsof)

    linux查看服务端口号 查看端口 netstat lsof netstat atulnp会显示所有端口和所有对应的程序 用grep管道可以过滤出想要的字段 a all 表示列出所有的连接 服务监听 Socket资料 t tcp 列出tcp
  • 配置docker阿里云镜像加速

    默认情况下docker安装镜像文件是从docker官方的镜像中心下载 https hub docker com 有时速度慢 可以通过配置docker阿里云镜像来加速 配置后 就从国内阿里云下载 注册阿里云用户 登录 gt 工作台 gt 产品
  • 200 ok 几种状态

    浏览器加载资源成功一般会有几种状态 200 ok 从原始服务器请求成功 200 ok from cache 200 ok from disk cache 200 ok from memory cache 304 not modified 向