首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏前端说吧

    HTTP缓存——协商缓存缓存验证)

    协商缓存 所谓“协商”,可以理解为:客户端和服务端双方商量着来。 同时,客户端拿到新的资源及其修改时间与标识后,重新进行缓存。 概括如下图: 缓存验证 协商缓存就是缓存验证。 触发时机: 用户点击刷新按钮时会开始缓存验证。 协商缓存中,就有很多这样的附带条件请求。 也就是说,如果命中协商缓存,服务端响应请求时,只会返回一个304状态码、并没有实际上的文件内容,因此在响应体体积上的节省是协商缓存的优化点 HTTP/1.0 Last-Modified组 Last-Modified 协商缓存时,客户端携带该字段与服务端资源的Etag字段值进行比对,只有在If-None-Match的字段值与Etag值匹配不上、不一致时,命中协商缓存

    3.3K10发布于 2021-08-25
  • 来自专栏Czy‘s Blog

    缓存协商缓存

    缓存协商缓存 浏览器缓存是浏览器在本地磁盘对用户最近请求过的资源进行存储,当访问者再次访问同一资源时,浏览器就可以直接从本地磁盘加载资源,通过缓存的方式就可以减少与服务器的数据传输,减少服务器的负担 描述 良好的缓存策略可以降低资源的重复加载提高网页的整体加载速度,通常浏览器缓存策略分为强缓存协商缓存。常见的HTTP缓存只能存储GET响应,对于其他类型的响应则不会进行缓存。 本地缓存未命中,则浏览器向服务器发送一个协商请求,通过last-modified和etag验证资源是否命中协商缓存,如果命中则服务器会将这个请求响应为304,但是不会返回这个资源的数据,依然是从缓存中读取资源 简单来说,就是浏览器会将服务端响应的资源进行缓存,但是在每次请求时,缓存都要向服务端评估缓存响应的有效性,协商缓存是否可用,根据响应是304还是200判断是使用本地缓存资源还是使用服务器响应的资源。 协商缓存 当浏览器对某个资源的请求没有命中强缓存,就会发一个请求到服务器,验证协商缓存是否命中,如果协商缓存命中,请求响应返回的HTTP状态为304 (Not Modified),该请求不携带实体数据,

    1.2K20发布于 2020-08-27
  • 来自专栏女程序员的日常_Lin

    缓存协商缓存

    六月总是如此的多雨~ 之前对强缓存协商缓存一直很模糊,今天再仔细学一下。 强缓存 — 强缓存,又称本地缓存。顾名思义,就是指浏览器不会发出请求,直接从缓存中获取。 cached-control还有其他的属性: no-cached 不使用本地缓存 no-stroe 不允许服务器缓存数据 public 允许所有终端缓存数据,包括终端用户和CND private 只允许终端用户的浏览器缓存 ,不允许CDN缓存 协商缓存协商缓存,是当校验发现不能使用强缓存需要去服务器请求时发生的。 强缓存协商缓存区别 — 缓存类型 获取资源形式 状态码 发送请求到服务器 强缓存缓存取 200(from cache) 否,直接从缓存协商缓存缓存取 304(Not Modified) 是 如果没有命中强缓存,则向服务器发请求,请求时携带第一次请求返回的Header(Last-Modify/If-Modified-Since和ETag/If-None-Match),由服务器判断是否命中协商缓存

    1.3K10发布于 2019-07-19
  • 来自专栏夏天的前端笔记

    缓存协商缓存的区别

    缓存协商缓存是浏览器缓存策略的两种主要形式,它们各自有不同的特点和应用场景。 协商缓存:每次请求都会与服务器进行交互。浏览器会向服务器发送请求,询问资源是否有更新。 协商缓存:如果资源未发生变化,服务器会返回304(Not Modified)状态码,表示浏览器可以继续使用本地缓存的数据。如果资源有更新,服务器会返回新的资源数据,并可能更新相关的缓存标识。 刷新策略: 强缓存:在浏览器强制刷新(如F5刷新或Ctrl+F5强制刷新)的情况下,强缓存不会生效,浏览器会重新向服务器发送请求。 协商缓存:在浏览器强制刷新的情况下,协商缓存仍然会生效。 浏览器会发送请求并带上缓存标识,服务器会根据这些标识来判断是否返回新的资源。 综上所述,强缓存协商缓存各有其特点和适用场景。在实际应用中,通常会结合使用这两种缓存策略,以实现更好的性能和用户体验。

    67310编辑于 2024-03-21
  • 来自专栏bug收集

    强制缓存协商缓存的区别

    浏览器第一次请求时: 浏览器后续在进行请求时: 浏览器缓存分为强缓存(本地缓存)和协商缓存(对比缓存) 02 术语解释 1. 缓存命中:指在缓存中找到请求的数据. 2. 需要使用缓存协商,先与服务器确认返回的响应是否被更改,如果之前的响应中存在ETag,那么请求的时候会与服务端验证,如果资源未被更改,则可以避免重新下载。 ),由服务器根据请求中的相关header信息来比对结果是否协商缓存命中;若命中,则服务器返回新的响应header信息(返回304状态码)更新缓存中的对应header信息,但是并不返回资源内容,它会告知浏览器可以直接从缓存获取 ;否则返回最新的资源内容, 协商缓存参数 协商缓存都是由服务器来确定缓存资源是否可用的,所以客户端与服务器端要通过某种标识来进行通信,从而让服务器判断请求资源是否可以缓存访问,这主要涉及到下面两组header 05 强制缓存协商缓存的区别 06 前端如何实现HTTP缓存 静态的html页面想要设置使用缓存需要通过HTTP的META设置expires和cache-control 设置如下网页元信息: <

    1.3K20编辑于 2022-12-14
  • 来自专栏Mr_du

    强制缓存协商缓存的区别

    协商缓存:客户端向服务端发送带有If-None-Match和If-Modified-Since的请求进行协商判断,如果资源没有变化继续使用本地缓存,记录为304状态;如果资源发生变化,服务端响应数据,记录为 浏览器是如何判断是否使用缓存的 浏览器缓存的优点有: 1.减少了冗余的数据传输,节省了网费 2.减少了服务器的负担,大大提升了网站的性能 3.加快了客户端加载网页的速度 浏览器缓存主要有两类:缓存协商和彻底缓存 ,也有称之为协商缓存和强缓存。 ,协商缓存会发请求。 浏览器会使用强制缓存策略来加载 HTML 页面,而对于每个 PNG 图片,浏览器会使用协商缓存策略来验证缓存的有效性。

    10.2K82编辑于 2023-11-23
  • 来自专栏javascript学习笔记

    304状态码详解(协商缓存

    304状态码详解(协商缓存) 上一篇文章针对不同的状态码做了一个整理,还说到要专门针对304做一个详解,于是与,今晚又来学习了。 首先说一下背景: 我们知道前端代码打包后需要部署到静态服务器上。 2、cache-control字段:该字段有几个可选值包括no-cache、no-store、public、private等,这些值决定了能否使用缓存以及缓存的方式。 no-cache时,代表不使用本地缓存,客户端会向服务器发送请求,由服务器决定是否重新获取资源。 no-store时,会完整下载资源 public时:表示资源可以被所有用户缓存,包括服务器 private时表示资源只能被浏览器终端缓存 如果两者同时存在,cache-control优先级更高一些。 header 变为 if-none-matched: '5c20abbd-e2e8' if-modified-since: Mon, 24 Dec 2018 09:49:49 GMT 浏览器没有命中强缓存并走协商缓存时就把这些值跟资源文件的信息进行比对

    2K00编辑于 2022-02-24
  • 来自专栏小工匠聊架构

    计网 - HTTP 协议_强制缓存协商缓存的区别

    文章目录 Pre 请求响应和长连接 HTTP 2.0 的多路复用 HTTP 方法和 RestFul 架构 HTTP 方法 缓存 强制缓存 协商缓存 总结 ? ---- 缓存 在 HTTP 的使用中,我们经常会遇到两种缓存,强制缓存协商缓存,接下来举两个场景来说明。 ---- 强制缓存 举个例子: 公司用版本号管理某个对外提供的 JS 文件。 ---- 协商缓存 我们再说一个场景:小明开发了一个接口,这个接口提供全国省市区的 3 级信息。先问你一个问题,这个场景可以用强制缓存吗? 为了应对这种场景,HTTP 协议还设计了协商缓存协商缓存启用后,第一次获取接口数据,会将数据缓存到本地,并存储下数据的摘要。第二次请求时,浏览器检查到本地有缓存,将摘要发送给服务端。 从这个角度看,协商缓存的方式节省了流量。对于小明开发的这个接口,多数情况下协商缓存会生效。当小明更新了数据后,协商缓存失效,客户端数据可以马上更新。和强制缓存相比,协商缓存的代价是需要多发一次请求。

    76140发布于 2021-08-17
  • 来自专栏编程三昧

    【前端 · 面试 】HTTP 总结(九)—— HTTP 协商缓存

    [3b7bc5b6cf234b78b3d623a9a895acaf~tplv-k3u1fbpfcp-zoom-1.image] 前言 通过前面的介绍,我们知道 HTTP 缓存分为两种: 强缓存 协商缓存 [HTTP 缓存分类] 在上一篇文章中,我们了解了 HTTP 强缓存,今天我们来了解一下协商缓存相关的内容。 协商缓存 特点 协商缓存,也称为对比缓存,从名称可以看出,它没有强制缓存那么霸道,可以有商有量的来确定是否使用缓存资源。 协商缓存机制下,浏览器需要发送缓存标识,去向服务器验证缓存标识是否有效,进而判断是重新发起请求、下载完整的响应,还是从本地获取缓存的资源。 上图是缓存标识正常有效的时序图,但其实协商缓存的验证结果也存在两种情况: 标识有效 标识过期 协商缓存需要配合强缓存使用,使用协商缓存需要先设置 Cache-Control:no-cache 或者 pragma

    60110发布于 2021-08-10
  • 来自专栏网络技术联盟站

    交换机端口速率协商:自协商、半自协商和强制协商

    当涉及交换机端口速率协商的原理时,我们主要关注三种主要的速率协商机制:自协商、半自协商和强制协商。在本文中,我们将深入探讨每种机制的工作原理和它们之间的区别。图片1. 自协商协商是最常见的速率协商机制。它由IEEE 802.3标准定义,并被广泛应用于以太网设备,如交换机和网卡。自协商允许连接的设备在启动时协商最佳的通信速率和双工模式(全双工或半双工)。 半自协商半自协商是另一种速率协商机制,通常用于一些特定的网络设备,如一些老旧的交换机。与自协商不同,半自协商不支持双工模式的协商,只能协商速率。 限制性能:半自协商可能无法实现设备间最佳的通信速率,从而限制了性能。4. 强制协商强制协商是最简单的速率协商机制。 总结交换机端口速率协商是确保网络性能和互操作性的关键过程。在本文中,我们探讨了三种主要的速率协商机制:自协商、半自协商和强制协商

    2.4K10编辑于 2023-07-22
  • 来自专栏网络技术联盟站

    交换机端口速率协商:自协商、半自协商和强制协商

    来源:网络技术联盟站 当涉及交换机端口速率协商的原理时,我们主要关注三种主要的速率协商机制:自协商、半自协商和强制协商。在本文中,我们将深入探讨每种机制的工作原理和它们之间的区别。 1. 自协商协商是最常见的速率协商机制。它由IEEE 802.3标准定义,并被广泛应用于以太网设备,如交换机和网卡。自协商允许连接的设备在启动时协商最佳的通信速率和双工模式(全双工或半双工)。 半自协商 半自协商是另一种速率协商机制,通常用于一些特定的网络设备,如一些老旧的交换机。与自协商不同,半自协商不支持双工模式的协商,只能协商速率。 3.1 半自协商的过程 半自协商的过程类似于自协商,但没有双工模式的协商。 物理层连接:两个设备通过电缆物理连接。 发送配置帧:每个设备通过其发送配置帧来启动协商过程。 总结 交换机端口速率协商是确保网络性能和互操作性的关键过程。在本文中,我们探讨了三种主要的速率协商机制:自协商、半自协商和强制协商

    3.2K20编辑于 2023-09-05
  • 来自专栏vue+ArcGis

    一文读懂什么是http的强缓存以及协商缓存?简单易懂

    今天犹豫了很久要不要写http的强缓存协商缓存,写的话 掘金很多大佬的文章都已经说的很详细很易懂了,有耍大刀和水文章的嫌疑。但是不写又想自己做个总结,写出来加深一下印象。 二、强缓存缓存就是本地缓存 浏览器首次请求资源后,需要再次请求时,浏览器会首先获取该资源缓存的header信息,然后根据Cache-Control和expires来判断该资源在本地缓存否过期。 若没过期则直接从本地缓存中获取资源信息,浏览器就不再向服务器重新请求资源,如过期则需重新发送请求,重新缓存资源,更新缓存时间。 强缓存是利用http请求头中的Expires和Cache-Control两个字段来进行控制,用来表示资源的缓存时间。 两个时间可以共存,Cache-Control优先级更高 协商缓存 协商缓存是服务器用来确定缓存资源是否可用过期 因为服务器需要向浏览器确认缓存资源是否可用,二者要进行通信,而通信的过程就是发送请求,所以在

    3.9K62编辑于 2021-12-09
  • 来自专栏itclanCoder

    Js篇-面试题6-聊一下强缓存协商缓存

    从上图可以知道,浏览器缓存包括两种类型,即强缓存(本地缓存)和协商缓存,浏览器在第一次请求发生后,再次请求时 浏览器在请求某一资源时,会先获取该资源缓存的header信息,判断是否命中强缓存(cache-control header信息来比对结果是否协商缓存命中,若命中,则服务器返回新的响应header信息更新缓存中的对应header信息,但是并不返回资源内容,它会告知浏览器可以直接从缓存获取,否则返回最新的资源内容 强缓存协商缓存的区别,如下所示 类型 获取资源形式 状态码 强缓存缓存取 200 协商缓存缓存取 304 强缓存相关的header字段 强缓存是直接从缓存中获取资源而不经过服务器,与强缓存相关的 ,否则就不行,cache-control除了该字段外,还有下面几个比较常用的设置值 no-cache: 不使用本地缓存,需要使用协商缓存,先与服务器确认返回的响应是否被更改,如果之前中存在ETag,那么请求的时候会与服务器验证 的优先级高于expires 协商缓存相关的 header 字段 协商缓存都是由服务器来确定缓存资源是否可用的,所以客户端与服务器端需要某种标识来进行通信,从而让服务器判断请求资源是否可以缓存访问,这主要涉及到下面两组

    2K10发布于 2020-10-28
  • 来自专栏全国产化交换机

    协商技术

    摘要:本文介绍了自协商的基本原理和工作模式,以及自协商相关细节介绍。 对于电口来说,协商发生在链路信号传输之前;对于光口来说,自协商机制与PCS(物理编码子层)在同一层,这意味着光口的协商必须先建立链路同步以后才可以进行协商。 基于以上原理,在对端不打开自协商时,打开自协商的一方只能协商成半双工模式。    如果A端自协商,B端设置为100M全双工,A协商为100M半双工后,再强制将B改为10M全双工,A端也会马上向下协商到10M半双工;如果A端自协商,B端设置为10M全双工,A协商为10M半双工后,再强制将 这个时候,如果插拔一下网线,又会重新协商在100M半双工。2.4 千兆光口自协商    千兆光口可以工作在强制和自协商两种模式。

    2.8K21编辑于 2022-12-28
  • 来自专栏追宇星空

    以太网自协商机制--双绞线自协商(九)

    它们与遍地可见的10M/100M/1000M 双绞线PHY不同,可能很多小伙伴对他们并没有基本的概念,这里笔者分别对他们进行一个简单的介绍(这部分内容双绞线自协商无直接关系,对本部分不感兴趣的读者可以跳过本章节 10GBASE-T PHY 10GBASE-T 目标特性 仅支持全双工操作; 在MAC/PLS服务接口支持10Gb/s的速度(在Medium侧为12.8gbps); 支持基于Clause 28的双绞线自协商 这个主从配置通过链路双方的双绞线自协商机制确定(网管员需要保证链路双方一主一从)。

    90911编辑于 2024-07-01
  • 来自专栏一个执拗的后端搬砖工

    spring内容协商

    个人理解: 所谓内容协商,其实就是根据客户端请求的url扩展后缀、请求参数或者请求头来指定响应内容的类型。 4 三种内容协商策略及实现 spring支持三种内容协商策略: URL中使用后缀,例如 .xml/.json URL使用查询参数,例如 ? 4.3:三种内容协商策略优先级 对于上述三种模式的内容线上策略,在有些特定场景,我们可能会同时开启,这时候接收到请求的时候, 内容协商器CNVR具体路由到哪一个视图解析器就会涉及到优先级问题,多说无益 4.3.5 结论 从上述①②③④结论中,我们可以得出在三种内容内容协商模式都开启的情况下,内容协商器对于三种策略模式执行的优先级顺序是(从高到低): 后缀模式->参数模式->请求头模式 总结 此篇文章我们详细介绍了 spring内容协商的概念、用法和原理,并且通过实例代码的方式验证了三种策略模式执行的优先级,相信大家对spring内容协商有了一个大致的了解,对于内容协商模式的作用和具体使用场景,大家可以相互讨论或者翻阅网上相关资料

    1.4K10发布于 2020-11-19
  • 来自专栏追宇星空

    以太网自协商机制--双绞线自协商(八)

    10GBASE-T PHY、5GBASE-T PHY和2.5GBASE-T PHY的典型Data Path:

    1.9K11编辑于 2024-07-01
  • 来自专栏追宇星空

    以太网自协商机制--双绞线自协商(十三)

    协商基理(二) 流控协商 流控协商根据应用场景需要将MultiGBAE-T分为“原生模式”和“兼容模式”两大类进行讨论。 EEE需要双绞线链路双方均使能方有意义,故需要利用自协商机制进行协商。100BASE-TX EEE、1000BASE-T EEE和10GBASE-T EEE利用双绞线自协商机制进行协商。 基于EEE双绞线自协商和PCS控制寄存器软件联动机制只能实现EEE对称操作(因为EEE自协商能力只有1比特)。 Fast Retrain需要双绞线链路双方均使能方有意义,故需要利用自协商机制进行协商。10GBASE-T Fast Retrain利用双绞线自协商机制进行协商。 MultiGBASE-T自协商完结。 下节课会对双绞线自协商进行总结。

    1.1K11编辑于 2024-07-01
  • 来自专栏追宇星空

    以太网自协商机制--双绞线自协商(十一)

    2.5GBASE-T 目标特性 仅支持全双工操作; 在MAC/PLS服务接口支持5 Gb/s和2.5 Gb/s的速度(在Medium侧为6.4gbps和3.2gbps); 支持基于Clause 28的双绞线自协商 这个主从配置通过链路双方的双绞线自协商机制确定(网管员需要保证链路双方一主一从)。主PHY使用本地晶振时钟发送数据,从PHY根据接收数据中提取的时钟用作本地发送数据的时钟。 2.5GBASE-T线缆参数 5GBASE-T/2.5GBASE-T的MDI母头 5GBASE-T/2.5GBASE-T的MDI公头 5GBASE-T/2.5GBASE-T的MDI线序 MutiGBASE-T自协商未完待续

    55910编辑于 2024-07-01
  • 来自专栏追宇星空

    以太网自协商机制--双绞线自协商(十二)

    协商基理(一) MultiGBASE-T自协商,主要协商的内容为“速度双工”、“主从”两个关键项(协商失败,链路不能正常建立链接)和“流控”、“EEE”、“Fast Retrain”、“PMA training 下面先介绍MultiGBASE-T自协商的BasePage和ExtendedNextPage的bits分配, 然后就这八大类自协商内容进行阐述。 MultiGBASE-T 编码格式 速度双工协商 速度双工协商根据应用场景不同需要将MultiGBAE-T分为“原生模式”和“兼容模式”两大类进行讨论。 经过第一个周期的互相协商,MultiGBASE-T PHY发现远端只支持Base Page,后续的协商MultiGBASE-T PHY只对外发送Base Page。 链接的一端协商配置为主设备,另一个协商配置为从设备。主设备发送和接收时钟锁定在本地晶振输入。从设备发送和接收时钟被锁定到传入的接收数据流。

    73811编辑于 2024-07-01
领券