http协议中的强缓存与协商缓存,带图详解

此篇抽自本人之前的文章:http面试题整理 。
别急着跳转,先把缓存知识学会了~

http中的缓存分为两种:强缓存、协商缓存。

  1. 强缓存
    响应头中的 status 是 200,相关字段有expires(http1.0),cache-control(http1.1),两者同时出现时 cache-control 优先级更高。主要是利用 cache-controlmax-age值来进行判断。

    浏览器再次请求服务器时,浏览器会先判断max-age,如果到期则直接请求服务器,否则直接从缓存中读取。

    响应头的字段如图所示:字段查看

  2. 协商缓存
    响应头中的 status 是 304,相关字段有 Etag / If-No-MatchLast-Modified / If-Modified-Since
    (1) 服务器的 ETag 和 浏览器的 If-None-Match 对应

    Etag(服务器): 上次加载时,服务器的 response header 返回的;
    If-No-Match(浏览器): 浏览器请求时的 request header 里的,取的是 Etag 的值。

    如果服务器为请求的资源确定的 ETag 标头的值与浏览器请求中的 If-None-Match 值相同,则服务器将返回 304 Not Modified。表示资源文件没有发生改变,命中协商缓存。

    服务器优先考虑Etag。

    Etag 与 Last-Modifed 均是服务器的响应头返回的,如图所示:
    缓存字段

    (2) 服务器的 Last-Modified 和 浏览器请求的 If-Modified-Since 对应

    Last-Modified(服务器):该资源文件最后一次更改时间,服务器的 response header 里返回;
    If-Modified-Since(浏览器):浏览器请求时的 request header 里的,取的是 Last-Modify 的值。

    在下一次发送请求时,服务器在接收到会做比对,如果相同,则命中协商缓存。
    If-No-Match 与 If-Modified-Since 是浏览器发送的,请求头可以简略为以下格式:

GET / HTTP/1.1
Host: example.com
Cache-Control: max-age=0
If-None-Match: "deadbeef"  // 对应服务端的标记Etag
If-Modified-Since: Tue, 22 Feb 2022 20:20:20 GMT // 对应服务端的Last-Modified

补充知识,常见的状态码:

以2开头的代表的成功的返回,以3开头代表重定向,以4开头是客户端、用户操作的问题,以5开头是服务器端的错误。

状态码含义
200请求成功。
301永久重定向,请求的网页已永久移动到新位置,浏览器会自动重定向到新的 url 地址。
302临时重定向,服务器目前从不同位置的网页响应请求,可使用原有 url 地址。
303查看其它位置,重定向。
304Not Modified,资源未作修改。协商缓存。
305所访问资源必须通过代理访问。
401要求用户要进行身份验证,未登录等情形。
403请求已发出,但服务端禁止访问。
404页面无法找到。
500服务器内部错误。
501服务器不支持请求的功能。
502网关错误。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/450289.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++中类模板的定义和使用

类模板的定义和使用 引言类模板声明和定义有问有答 示例运行结果注意参数传递ref 引言 类模板就是一个模板,但是数据可以适用多种类型。类模板使用时需要模板的特例化,就变成了模板类。 本文只要是记录一下模板的使用。同时对于引用和右值引用传参做一下…

几个redis常用命令

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 ping:测试连接是否存活 例如:测试当前redis数据库是否存活 127.0.0.1:6379> ping #返回PONG&am…

RHEL9 DNF/YUM仓库管理软件包

DNF/YUM仓库管理软件包 一个基于RPM包的软件包管理器能够从指定的服务器自动下载RPM包并且安装,自动处理依赖性关系,并且一次性安装所有依赖的软件包C/S模式 Server服务端提供RPM软件包与数据库文件repodataClient客户端使用dnf仓库 常用组合 组合参…

半导体湿法技术有什么优势

湿法蚀刻工艺的原理是使用化学溶液将固体材料转化为液体化合物。选择性非常高, 因为使用的化学品可以非常精确地适应单个薄膜。对于大多数解决方案,选择性大于100:1。 批量蚀刻 在批量蚀刻中,可以同时蚀刻多个晶圆,过滤器和循环…

返回值不同算方法重载么?为什么?

1、典型回答 返回值不同不算方法重载 方法重载(Overloading)是指在同一个类中定义了多个同名方法,但它们的参数列表不同,方法重载要求方法: 名称相同参数类型、参数个数或参数顺序,至少有一个不同 方法…

【SQL】601. 体育馆的人流量(with as 临时表;id减去row_number()思路)

前述 知识点学习: with as 和临时表的使用12、关于临时表和with as子查询部分 题目描述 leetcode题目:601. 体育馆的人流量 思路 关键:如何确定id是连续的三行或更多行记录 方法一: 多次连表,筛选查询方法二&…

普发Pfeiffer氦质谱检漏仪HLT260/270系列电路图电路板图纸和接线针脚含义非常详细内部国外资料中英操作说明培训PPT课件打包13个文档

普发Pfeiffer氦质谱检漏仪HLT260/270系列电路图电路板图纸和接线针脚含义非常详细内部国外资料中英操作说明培训PPT课件打包13个文档

使用 gin-api-mono 创建简单的 TODO 服务

介绍 首先介绍一下 gin-api-mono 这个项目,这个项目是由 go-gin-api 作者基于用户的需求衍生出来的一个项目。因为有些用户觉得 go-gin-api 是一个前后端都有的一个开源项目,对于很多用户来说,前端部分是不需要的,所以作者看到这…

护眼灯什么价位的好用?推荐五款好价护眼台灯

如今,我们不难发现许多年轻人早早地就戴上了眼镜,近视问题日益严重。在改善近视问题的众多因素中,营造适宜的照明环境,特别是选择一款合适的护眼台灯,显得尤为重要。然而,对于初次选购护眼台灯的人来说&…

通过sqoop把hive数据到mysql,脚本提示成功,mysql对应的表中没有数

1、脚本执行日志显示脚本执行成功,读写数量不为0 2、手动往Mysql对应表中写入数据十几秒后被自动删除了 问题原因: 建表时引擎用错了,如下图所示 正常情况下应该用InnoDB

Request和Response对象

Request和Response都是Servlet的service方法的参数,Request负责获取请求数据,而Response负责设置相应数据~ 一.Request 1.继承体系 Tomcat负责解析数据,因此由Tomcat来提供实现类~ 2.获取请求数据 请求行 请求头 请求体 需要注意的是只有…

【Greenhills】MULTI IDE工程管理的目录结构

【更多软件使用问题请点击亿道电子官方网站查询】 1、 文档目标 关于的GHS的Project Manager中工程的目录结构的组成 2、 问题场景 在GHS中去创建项目后,对于在Project Manager窗口中的目录结构不太清晰,目录中有多个gpj文件,无法确认哪个是…

掼蛋如何识人

掼蛋的吸引力在于其充满变化和挑战性。它不仅仅可以考验玩家的技巧、智慧和决策能力,也是一种社交活动。通过玩家之间的出牌习惯和方式,能快速帮助我们推测出对方的思维方式和性格特征。 一、保守型 这类玩家按部就班,在游戏开始的时候&#…

【JAVA】HashMap扩容性能影响及优化策略

🍎个人博客:个人主页 🏆个人专栏:JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 结语 我的其他博客 前言 在软件开发中,HashMap是一种常用的数据结构,但在处理大量数据时,其扩容…

广西省行政村边界shp数据/广西省乡镇边界/广西省土地利用分类数据/径流分布

广西壮族自治区,地处中国南部,北回归线横贯中部。南北以贺州——东兰一线为界,此界以北属中亚热带季风,以南属南亚热带季风。 数据范围:全国行政区划-行政村界 数据类型:面状数据,全国各省市县…

华为数通方向HCIP-DataCom H12-821题库(多选题:141-160)

第141题 以下关于802.1X认证的触发机制,描述正确的有? A、802.1X认证不能由认证设备(如802.1交换机)发起 B、802.1X客户端可以组播或广播方式触发认证 C、认证设备可以以组播或单播方式触发认证 D、802.1X认证只能由客户端主动发起 【参考答案】BC 【答案解析】 第142题 以…

java-ssm-基于jsp商场停车服务管理信息系统

java-ssm-基于jsp商场停车服务管理信息系统

Python网站的搭建和html基础

1.Python网站代码及讲解 一般我们搭建小型的网站就用flask库就行了。 (1)安装flask库 安装完python后,按住windows徽标键和r,弹出“运行”,在里面输入cmd。 回车打开,输入“pip install flask”。 (2&am…

WAServiceMainContext.js:2 ReferenceError: result is not defined

WAServiceMainContext.js:2 ReferenceError: result is not defined at success (index.js? [sm]:280) at Function.forEach.u.<computed> (WASubContext.js?twechat&s1710205354985&v2.16.1:2) at :22955/appservice/<api request success callback fun…

53、WEB攻防——通用漏洞CRLF注入URL重定向资源处理拒绝服务

文章目录 CRLF注入原理&检测&利用URL重定向web拒绝服务 CRLF注入原理&检测&利用 URL重定向 就是url中存在urlhttps://xxx&#xff0c;重定向的页面没有限制。主要用来做钓鱼。 web拒绝服务 例如&#xff0c;图片的长宽参数由前端传入&#xff0c;恶意的数据…