首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Etag的每个组合都被视为invalid.When,我在图形资源管理器中执行相同的请求,它是有效的

Etag是HTTP协议中的一个实体标签,用于标识资源的版本信息。每个Etag值都是由服务器生成的,用于表示资源的特定版本。当客户端发送请求时,可以将上次请求中服务器返回的Etag值作为请求头的If-None-Match字段发送给服务器,以便服务器判断资源是否发生了变化。

在给定的问答内容中,Etag的每个组合都被视为无效的,这可能是由于以下几种情况导致的:

  1. 图形资源管理器缓存问题:图形资源管理器可能会缓存资源的Etag值,并在后续请求中使用该值。如果服务器端的资源发生了变化,Etag值也会相应地更新。但是,由于图形资源管理器的缓存问题,可能会导致它仍然使用旧的Etag值进行请求,从而导致服务器认为该请求是无效的。
  2. 服务器端缓存策略:服务器端可能会设置缓存策略,例如设置了较长的缓存时间或者使用了强缓存。在这种情况下,即使资源发生了变化,服务器也可能会返回之前的Etag值,并且认为请求是无效的。

为了解决这个问题,可以尝试以下方法:

  1. 强制刷新:在图形资源管理器中,可以使用Ctrl+F5或者Shift+F5等快捷键进行强制刷新,这样可以绕过缓存,确保请求中的Etag值是最新的。
  2. 清除缓存:如果问题仍然存在,可以尝试清除图形资源管理器的缓存,然后重新加载页面。具体的清除缓存方法可以根据不同的浏览器进行操作。
  3. 检查服务器配置:如果问题持续存在,可能是服务器端的配置问题导致的。可以检查服务器的缓存策略、Etag生成逻辑等相关配置,确保其正确性。

总结起来,Etag是用于标识资源版本的HTTP实体标签,每个Etag值都是由服务器生成的。在某些情况下,Etag的组合可能被视为无效,可能是由于缓存问题或服务器配置问题导致的。为了解决这个问题,可以尝试强制刷新、清除缓存或检查服务器配置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

HTTP 缓存头部 - 完全指南

我们一般将cache-control: no-cache视为pragma: no-cache更新一些实现。整体理解上了解这个指令是有必要,但今后不会再为其定义新 HTTP 指令了。...Validators ETag 这种 HTTP/1.1 定义有效性 token: 通过服务器 `ETag` HTTP头部传达 确保资源更新有效性,也就是说,如果资源没改变,就不会发生数据传输...客户端不需要知道该 token 如何产生,只肖随后请求携带之便可。如果 token 相同,也就意味着资源没变,这样一来也就跳过了重新下载。...如果缓存资源未发生变化,浏览器将收到一个 `304 Not Modified` 响应,有效性续期 90 秒。特别是因为不用重新下载资源,带宽和时间都被节省了。...web 开发者如何从重新生效获益? 浏览器为 web 开发者承担了大多数工作。比如,浏览器自动检测到前一次指定有效性 token ,将其附加到随后请求,并按需基于服务器响应更新缓存时间戳。

1.2K20

如何整理自己前端面试题库_2023-02-28

,浏览器会先检查上一次服务端返回响应头信息Cache-Control,它值是一个相对值,单位为秒,表示资源客户端缓存最大有效期,过期时间为第一次请求时间减去Cache-Control值,...ETag 值; 服务端再次收到请求,将请求头 If-None-Match 字段值和响应资源哈希值进行比对,如果两个值相同,则说明资源没有变化,返回 304 Not Modified;否则就正常返回资源内容...这样带来问题是,同一个资源,两台服务端产生 Etag 可能是不相同,所以对于使用服务器集群来处理请求网站来说,使用 Etag 缓存命中率会有所降低。...除了js范畴内es module、commonJs、AMD等,css @import、url(...)、图片、字体等webpack中都被视为模块。...如果让设计一个Diff算法,首先想到方案是: 判断当前节点更新属于哪种情况 如果是新增,执行新增逻辑 如果是删除,执行删除逻辑 如果是更新,执行更新逻辑 按这个方案,其实有个隐含前提——不同操作优先级是相同

1.3K50
  • 跟我一起探索 HTTP-HTTP缓存

    在这样受控环境,无需担心代理缓存“已过时且未更新”。 托管缓存 托管缓存由服务开发人员明确部署,以降低源服务器负载并有效地交付内容。...特别是执行内容协商时,来自服务器响应可能取决于 Accept、Accept-Language 和 Accept-Encoding 请求标头值。...HTTP/1.1 Host: example.com Accept: text/html If-None-Match: "deadbeef" 如果服务器为请求资源确定 ETag 标头值与请求...通过响应添加 Cache-Control: no-cache 以及 Last-Modified 和 ETag——如下所示——如果请求资源已更新,客户端将收到 200 OK 响应,否则,如果请求资源尚未更新...doctype html> … max-age=0 和 must-revalidate 组合与 no-cache 具有相同含义。

    26751

    透过浏览器看HTTP缓存

    因此,了解相关缓存机制和充分利用它似乎就变得必不可少。 web端缓存机制其实有多种,在这里只是学习和整理了以浏览器为载体HTTP缓存机制,看看它是如何工作。...为每个资源指定一个明确缓存策略,用以定义资源是否可以缓存,由谁来缓存,可以缓存多久,并且缓存时间到期时如何有效地重新验证。...3.2 Etag工作原理 如上图,服务器第一次返回响应时候设置了缓存时间120s,假设浏览器在这120s经过之后再次请求服务器相同资源,首先,浏览器会检查本地缓存并找到之前响应,不幸是,这个响应现在已经...于是就到了Etag发挥作用时候了,通常服务器生成并返回Etag验证码,常常是文件内容哈希值或者某个其他指纹码。...浏览资料时候发现了一个caching checklist,比较具有参考价值,我们可以遵循建议合理利用缓存机制: 使用一致网址:如果在不同网址上提供相同内容,那么将会多次获取和存储相同内容

    50520

    2022秋招前端面试题(八)(附答案)

    ;服务器收到请求后,优先根据 Etag 值判断被请求文件有没有做修改,Etag 值一致则没有修改,命中协商缓存,返回 304;如果不一致则有改动,直接返回新资源文件带上新 Etag 值并返回 200...后面是一个匿名自执行函数, if 条件调用了函数 g(),由于匿名函数,又重新定义了函数g,就覆盖了外部定义变量g,所以,这里调用是内部函数 g 方法,返回为 true。...[] , JavaScript ,当用于布尔运算时,比如在这里,对象非空引用被视为 true,空引用 null 则被视为 false。... SVG 每个被绘制图形均被视为对象。如果 SVG 对象属性发生变化,那么浏览器能够自动重现图形。...矢量文件图形元素称为对象。每个对象都是一个自成一体实体,它具有颜色、形状、轮廓、大小和屏幕位置等属性。iframe 有那些优点和缺点?

    54620

    前端性能优化原理与实践

    webpack打包 资源请求过程,涉及到网络请求,包括:HTTP、TCP、DNS。其中TCP、DNS前端能做工作非常有限,因此「优化HTTP」就成为了首要任务。...「Etag」是由服务器为每个资源生成唯一「标识字符串」,这个标识字符串是「基于文件内容编码」,只要文件内容不同,它们对应 Etag 就是不同。...ETag: W/"2a3b-1602480f459" 当再次请求资源时,请求头里会携带一个值相同、名为「If-None-Match」 字符串: If-None-Match: W/"2a3b-1602480f459...浏览器渲染 「解析 HTML」 在这一步浏览器执行了所有的加载解析逻辑,解析 HTML 过程中发出了页面渲染所需各种外部资源请求。...因此需要防抖和节流来「限制触发频率」。 节流 所谓“节流”,是通过一段时间内「无视后来产生回调请求」来实现。也就是说,一段时间内,以「第一个请求」为准。这段时间所有的其他请求都被忽略。

    97520

    彻底弄懂浏览器缓存策略

    缓存会根据进来请求保存输出内容副本;当下一个请求来到时候,如果是相同URL,缓存会根据缓存机制决定是直接使用副本响应访问请求,还是向源服务器再次发送请求。...一个缓存副本必须满足以下条件,浏览器会认为它是有效,足够新: 含有完整过期时间控制头信息(HTTP协议报头),并且仍在有效期内; 浏览器已经使用过这个缓存副本,并且一个会话已经检查过新鲜度;...如果请求资源时在请求首部加上这个字段,值为之前服务器端返回资源上ETag,则当且仅当服务器上没有任何资源ETag属性值与这个首部列出时候,服务器才会返回带有所请求资源实体200响应,否则服务器会返回不带实体...确定中继缓存可以缓存哪些资源:对所有用户响应完全相同资源很适合由 CDN 或其他中继缓存进行缓存。 确定每个资源最优缓存周期:不同资源可能有不同更新要求。...审查并确定每个资源适合max-age。 确定网站最佳缓存层级:对 HTML 文档组合使用包含内容特征码资源网址以及短时间或 no-cache 生命周期,可以控制客户端获取更新速度。

    2.5K30

    从敲入 URL 到浏览器渲染完成、对HTTP协议理解

    它是利用现有的 DNS 机制,提前解析网页可能网络连接。 当我们开始浏览器输入网址时候,浏览器其实就已经智能匹配可能得 url 了。...它可以保证两端(发送端和接收端)通信主机之间通信可达。 它能够处理传输过程丢包、传输顺序乱掉等异常情况;此外它还能有效利用宽带,缓解网络拥堵。...服务端:hello,是server,你是client么 客户端:yes,是client TCP 连接建立完成之后就可以发送 HTTP 请求了。...当所在资源都被加载完之后,WebKit 触发 “onload” 事件。 WebKit 将 DOM 树创建过程需要执行 JavaScript 代码交由 HTMLScriptRunner 类来负责。...HTTP/1.1协议,它含义和Cache- Control:no-cache相同。   3、Connection   Connection表示是否需要持久连接。

    82630

    一文读懂浏览器缓存

    试想一下如果可以使用缓存,只会产生极小网络流量,这将有效降低运营成本。 降低服务器压力:给网络资源设定有效期之后,用户可以重复使用本地缓存,减少对源服务器请求,降低服务器压力。...当从 memory cache 查找缓存时候,不仅仅会去匹配资源 URL,还会看其 Content-type 是否相同。...这个设置解决了 Expires 由于客户端系统时间不准确而导致缓存失效问题; must-revalidate:如果超过了 max-age 时间,浏览器必须向服务器发送请求,验证资源是否还有效; public...;再次请求该资源时候,如果强缓存过期,则浏览器会设置请求 If-Modifined-Since 字段值为存储缓存上次响应头 Last-Modified 值,并且发送请求;服务器拿着 If-Modifined-Since...当 Last-Modified 和 ETag 都被设置时候,浏览器会优先考虑后者。 浏览器行为 浏览器地址栏输入 URL 后回车:查找 disk cache 是否有匹配。

    41020

    前端面试题

    那就是另外一个线程叫事件触发线程做事情了,他作用主要是定时触发器线程、异步HTTP请求线程满足特定条件下回调函数push到事件队列,等待js引擎空闲时候去执行,当然js引擎执行过程中有优先级之分...使用getImageData获取像素数组,然后遍历数组,把遍历节点过程,查看节点上下左右像素颜色是否相同,如果相同,然后设置标识,最后groupBy一下所有像素。...共同点:都是有效图形工具,对于数据较小情况下,都很又高性能,它们都使用 JavaScript 和 HTML;它们都遵守万维网联合会 (W3C) 标准。...针对于每一个形状,将其抽象成shape类,每一个类有自己方法isPointInSide来判断节点是否图形内,对于不规则图形,当做矩形处理,点击时候执行该方法判断点击位置是否图形内。...ETag,也就是在请求头里面加上If-None-Match字段,服务端接收到了ETag之后判断是否与原来第一次标识相同,如果相同,则告诉客户端使用缓存。

    1.9K31

    浏览器缓存机制

    这个时间表示是该资源有效期限,当请求处于这个时间之前时,均视为命中缓存。 缺点:因为这个时间表示是资源过期时间,所以当客户端和服务端有较大时间偏差时,咳咳,情况就不妙了。...这个过程涉及到两组字段(成对出现字段): Last-Modified and If-Modified-Since Etag and If-None-Match 上述1和2前者都是第一次请求响应头中存在字段...,后者则均存在于后续请求请求Header。...当浏览器再次请求相同资源时,请求头中会包含一个If-Modified-Since,这个值就是第一次请求该资源时返回Last-Modified。...Etag/If-None-Match 和上一对不同是,这一对字段值不是时间,而是一个校验码。Etag保证每个网络资源都是唯一,资源变化都会导致Etag变化。

    48210

    性能优化之关键渲染路径

    它是影响页面「加载」阶段主要标准。...有效字符串需满足: 左括号必须用相同类型右括号闭合。 左括号必须以正确顺序闭合。...起初,页面中所有CSS信息都被存放在一个文件 。现在,开发人员通过一些技术手段,能够将CSS文件「分割」开来,「只渲染早期阶段提供关键样式」。...头字段 所属分组 Expires 实体头 Cache-control 通用头 ETag 实体头 ❝ETag: 「更新操作」,有时候需要基于「上一次请求响应数据」来发送下一次请求。...no-store 处理资源不能被缓存和复用逻辑时候与 no-cache类似。然而,他们之间有一个重要「区别」。no-store要求资源每次都被请求并且下载下来。

    1.2K20

    HTTP缓存

    ETag 值做对比,如果两个值不相同,就返回资源内容和新 Etag 值,响应码为200;如果值相同,说明资源还没更新,就返回 304 状态码。...如: ETag: W/"as463c" 条件请求 形如 If-xxx 格式请求首部字段可称之为条件请求,服务器接收到这些条件请求时,只有判断条件为真才执行请求。...no-cache 和 no-store 这两个指令就是“通用”指令。 no-cache 如果包含 no-cache 指令,表示客户端可以缓存资源,每次使用缓存资源前都必须重新验证其有效性。...例如: Cache-Control: min-fresh=100 100 秒内,资源有效期限到了,这资源就无法作为响应返回。...总结 缓存处理过程可以简单地分为几步: 首先在缓存搜索指定资源副本,如果命中就执行第二步; 对资源副本进行新鲜度检测(If-None-Match),检测文档是否过期,如果不新鲜就执行第三步; 客户端与服务器进行再验证

    82640

    对不起,看完这篇HTTP,真的可以吊打面试官

    HTTP 内容协商 什么是内容协商 HTTP ,内容协商是一种用于同一 URL 上提供资源不同表示形式机制。...这里需要注意一下,过期资源并不会被回收或忽略,当高速缓存接收到过期资源时,它会使用 If-None-Match 转发此请求,以检查它是否仍然有效。...Wiki 页面(发布数据)时,POST 请求将包含 If-Match 标头,其中包含 Etag 值以检查有效性。...对于其他方法,特别是 PUT 方法,If-Match 可以防止丢失更新,服务器会比对 If-Match 字段值和资源 Etag 值,仅当两者一致时,才会执行请求。...虽然这是合法,因为它们是客户端上存储数据唯一方法,但如今建议使用现代存储 API。Cookie 随每个请求一起发送,因此它们可能会降低性能(尤其是对于移动数据连接而言)。

    6.4K21

    震惊 | HTTP 疫情期间把吓得不敢出门了

    HTTP 内容协商 什么是内容协商 HTTP ,内容协商是一种用于同一 URL 上提供资源不同表示形式机制。...这里需要注意一下,过期资源并不会被回收或忽略,当高速缓存接收到过期资源时,它会使用 If-None-Match 转发此请求,以检查它是否仍然有效。...Wiki 页面(发布数据)时,POST 请求将包含 If-Match 标头,其中包含 Etag 值以检查有效性。...对于其他方法,特别是 PUT 方法,If-Match 可以防止丢失更新,服务器会比对 If-Match 字段值和资源 Etag 值,仅当两者一致时,才会执行请求。...虽然这是合法,因为它们是客户端上存储数据唯一方法,但如今建议使用现代存储 API。Cookie 随每个请求一起发送,因此它们可能会降低性能(尤其是对于移动数据连接而言)。

    5.3K20

    用ASP.NET Core 2.1 建立规范 REST API -- 缓存和并发

    .jpg 缓存 根据REST约束:“每个响应都应该定义它自己是否可以被缓存”。..."除非性能可以得到很大提升,否则用缓存是没啥用。HTTP/1.1里缓存目标就是很多场景可以避免发送请求,在其他情况下避免返回完整响应"。...这时就会返回304 Not Modified,而Action方法也不会执行。 下面测试一下PUT动作: ? 更新数据之后,再发送一次之前GET请求: ?...这次Action方法又被执行了,这说明验证失败了,因为ETag已经不一致了,当我发送PUT请求时候,生成了一个新ETag。...REST里这是可以实现,而这个Token就是个验证器,而且要求是强验证器,所以我们可以用ETag。 回到例子: ? 客户1发送GET请求,返回响应并带着ETag Header。

    70530

    django 1.8 官方文档翻译: 3-6-2 内建中间件

    本地中间件 class LocaleMiddleware[source] 基于请求数据开启语言选择。 它可以为每个用户进行定制。 详见国际化文档。...这样一来,如果有任何请求没有被Django处理(比如静态媒体或用户上传文件),他们会拥有和向Django应用请求相同保护。...而在另一方面,如果你使用Django执行为了下载文件而请求授权之类事情,并且你不能使用你web服务器设置协议头,这个设置会很有用。...注意 由于性能因素,最好在Django外面执行这些重定向,nginx这种前端负载均衡器或者反向代理服务器执行。...认证中间件 class AuthenticationMiddleware[source] 向每个接收到HttpRequest对象添加user属性,表示当前登录用户。详见web请求认证。

    95630

    撰写合格REST API

    两周前因为公司一次裁人,好几个人都被按在了头上,这其中一大部分是一系列REST API,撰写者号称基本完成,测试了一下,发现尽管从功能角度来说,这些API实现了spec显式要求,但是从实际使用角度...仔细研究了原作者代码,发现缺失东西实在太多,每个API基本都在各自为战,与其修补,不如重写(并非是程序员相轻缘故),于是花了一整周,重写了所有的API。...如今鲜有人在撰写REST API时, 简单说来就是一个操作符合幂等性,那么相同数据和参数下,执行一次或多次产生效果(副作用)是一样。...HMAC Auth保证一致性:请求数据传输过程未被修改,因此可以安全地用于验证请求合法性。...服务器拿到这个头,从数据库(或者缓存)取出access-key对应secret,按照相同方式计算HMAC,如果其与Authorization header一致,则请求是合法,且未被修改过

    1.6K50
    领券