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

http缓存离线缓存

http1.0,等于cache-control:no-cache,pragma优先级高于expires 条件头部 Last-Modified 服务器响应时将文本最后修改时间放在此头部一起传送,...| 服务器响应时输出资源最后响应时间(从本地缓存读取资源不会有变化,也就是cache-control控制),而304响应是有变化 2....(而非代理服务器缓存),也就是响应必须来源于原始服务器 proxy-revalidate:must-revalidate类似,但仅能用于共享缓存(代理服务器) s-maxage:max-age一致...,完全按钮响应max-age控制缓存了,firefox是按照http规范实现。...# 禁止缓存文件 network: # 回退文件(页面无法访问时回退页面) fallback: 事件状态        5.1 状态 状态值 说明 0 未缓存 1 空闲(缓存为最新状态) 2

1.5K70

HTTP缓存

在客户端使用Date首部,将响应中Date首部当前时间进行比较,如果响应日期值比较早,客户端通常就可以认为是一条缓存响应。...首部 描述 Cache-Control:max-age max-age值定义了文档最大使用期—从第一次生成文档到文档不再新鲜、无法使用为止(单位:秒) Cache-Control:max-age=3600...HTTP允许缓存向原始服务器发送一个“条件Get请求”,请求服务器只有在文档缓存中现有的副本不同时,才回送对象主体;否则值返回304 Not Modified,不携带主体。...注意:如果返回304,不会有内容,节省请求大小! 控制缓存能力 服务器可以通过HTTP定义几种方式来指定在文档过期之前可以将其缓存多长时间。...注意:HTML2.0定义了来标记非缓存,其并不是控制文档缓存特性最好方法。

64431
您找到你想要的搜索结果了吗?
是的
没有找到

HTTP缓存知道这些就够了

HTTP没有为用户提供一种手段来区分响应是否缓存命中,还是访问原始服务器得到。...在客户端使用Date首部,将响应中Date首部当前时间进行比较,如果响应日期值比较早,客户端通常就可以认为是一条缓存响应。...首部 描述 Cache-Control:max-age max-age值定义了文档最大使用期—从第一次生成文档到文档不再新鲜、无法使用为止(单位:秒) Cache-Control:max-age=3600...HTTP允许缓存向原始服务器发送一个“条件Get请求”,请求服务器只有在文档缓存中现有的副本不同时,才回送对象主体;否则值返回304 Not Modified,不携带主体。...**注意:**如果返回304,不会有内容,节省请求大小! 控制缓存能力 服务器可以通过HTTP定义几种方式来指定在文档过期之前可以将其缓存多长时间。

38820

前端性能优化(二)——浏览器缓存机制

四、如何控制缓存缓存规则可以设置在htmlmeta标签,也可以设置在http协议头内。...4.2、HTTP协议头 http请求和响应头中,缓存相关常见类型: 规则 消息报头 值/示例 类型 作用 新鲜度 Pragma no-cache 响应 告诉浏览器忽略资源缓存副本,每次访问都需要去服务器拉取...若最后修改时间较新,说明资源又被改动过,则响应整片资源内容(写在响应消息包体内),包括更新Last-Modified值,HTTP 200;若最后修改时间较旧,说明资源无新修改,则响应HTTP 304(...两者可以一起使用,服务器优先验证ETag,一致时,才会继续比对Last-Mofifed,才决定是否要返回304。...http响应头中不包含Last-Modified/ETag,也不包含Cache-Control/Expiress请求无法缓存

54620

前端性能优化(二)——浏览器缓存机制

四、如何控制缓存缓存规则可以设置在htmlmeta标签,也可以设置在http协议头内。...4.2、HTTP协议头 http请求和响应头中,缓存相关常见类型: 规则 消息报头 值/示例 类型 作用 新鲜度 Pragma no-cache 响应 告诉浏览器忽略资源缓存副本,每次访问都需要去服务器拉取...若最后修改时间较新,说明资源又被改动过,则响应整片资源内容(写在响应消息包体内),包括更新Last-Modified值,HTTP 200;若最后修改时间较旧,说明资源无新修改,则响应HTTP 304(...两者可以一起使用,服务器优先验证ETag,一致时,才会继续比对Last-Mofifed,才决定是否要返回304。...http响应头中不包含Last-Modified/ETag,也不包含Cache-Control/Expiress请求无法缓存

1.8K40

前端性能优化(二)——浏览器缓存机制

四、如何控制缓存缓存规则可以设置在htmlmeta标签,也可以设置在http协议头内。...4.2、HTTP协议头 http请求和响应头中,缓存相关常见类型: 规则 消息报头 值/示例 类型 作用 新鲜度 Pragma no-cache 响应 告诉浏览器忽略资源缓存副本,每次访问都需要去服务器拉取...若最后修改时间较新,说明资源又被改动过,则响应整片资源内容(写在响应消息包体内),包括更新Last-Modified值,HTTP 200;若最后修改时间较旧,说明资源无新修改,则响应HTTP 304(...两者可以一起使用,服务器优先验证ETag,一致时,才会继续比对Last-Mofifed,才决定是否要返回304。...http响应头中不包含Last-Modified/ETag,也不包含Cache-Control/Expiress请求无法缓存

41130

浅谈浏览器缓存

HTTP请求和响应消息报头中,常见缓存有关消息报头有: ? Cache-Control cache-control种类这么多,然而怎么使用它们呢: ?...Last-ModifiedETag是可以一起使用,服务器会优先验证ETag,一致情况下,才会继续比对Last-Modified,最后才决定是否返回304。...一般情况下,两者会配合一起使用,因为即使服务器设置缓存时间, 当用户点击“刷新”按钮时,浏览器会忽略缓存继续向服务器发送请求,这时Last-Modified/ETag将能够很好利用304,从而减少响应开销...无法被浏览器缓存请求: HTTP信息头中包含Cache-Control:no-cache,pragma:no-cache,或Cache-Control:max-age=0等告诉浏览器不用缓存请求 需要根据...Cache-Control:Public之后,能够对HTTPS资源进行缓存,参考《HTTPS七个误解》) POST请求无法缓存 HTTP响应头中不包含Last-Modified/Etag,也不包含

1.5K70

Nginx下关于缓存控制字段cache-control配置说明 - 运维小结

HTTP协议Cache -Control指定请求和响应遵循缓存机制。在请求消息或响应消息中设置 Cache-Control并不会影响另一个消息处理过程中缓存处理过程。...下面做一详细总结, 方便在以后运维工作中理解和运用. 一. 浏览器中关于Cache3属性: 1. Cache-Control: 设置相对过期时间, max-age指明以秒为单位缓存时间....Expires相反,时间是相对于请求时间。max-age会覆盖掉Expires。...也就是说s-maxage只用于共享缓存,比如CDN缓存(s -> share)。max-age 区别是: max-age用于普通缓存,而s-maxage用于代理缓存。...Cache-Control:public, max-age=31536000 这里扩展一下: HTTP1.0 HTTP1.0中通过Pragma 控制页面缓存,通常设置值为no- cache,不过这个值不这么保险

7.4K51

一文搞懂浏览器缓存策略

编者按:本文作者高峰 http://verymuch.site/,奇舞团前端工程师,W3C性能工作组成员,同时在WOT工作组学习。 前言 众所周知,在Web开发中,缓存很重要、很有用。...下文也会利用Chrome这一特点在当前页刷新,派生资源会使用缓存进行测试。不然每次都需要打开新标签较为繁琐。 二、必知必会缓存基础 HTTP缓存有关字段主要有以下10个,如下表所示。...cache-directive为缓存指令,大小写不敏感,共有12个HTTP缓存标准相关,如下表所示。其中请求指令7种,响应指令9种。Cache-Control可以设置多个缓存指令,以逗号,分隔。...2.3.3 max-ageExpires Cache-Control中max-age指令用于指定缓存过期相对时间。资源达到指定时间后过期。该功能与Expires类似。...使用Cache-Control和ETag来控制HTML中所使用静态资源缓存。一般是将Cache-Controlmax-age设成一个比较大值,然后用ETag进行验证。

1K20

浏览器缓存机制浅析

如果没听说过浏览器缓存或者不知道浏览器缓存用处,可以先浏览一下这篇文章->Web缓存作用类型 。   那么浏览器缓存机制到底是如何工作呢?...需要注意是,浏览器会在第一次请求完服务器后得到响应,我们可以在服务器中设置这些响应,从而达到在以后请求中尽量减少甚至不从服务器获取资源目的。浏览器是依靠请求和响应头信息来控制缓存。...public和 private 如果响应被标记为public,即使有关联 HTTP 认证,甚至响应状态码无法正常缓存响应也可以被缓存。...HTTP304,直接读取缓存。...无法被浏览器缓存请求: HTTP信息头中包含Cache-Control:no-cache,pragma:no-cache(HTTP1.0),或Cache-Control:max-age=0等告诉浏览器不用缓存请求

47810

HTTP缓存

可以在客户端设置缓存,给缓存加上过期时间,如果期限没到就是用本地缓存内容。然而常见 HTTP 缓存只能存储 GET 响应,对于其他类型响应则无能为力。...缓存头部 HTTP 相关缓存头部一般有: Cache-Control 通用首部,它是缓存控制字段; Expires 响应首部,代表资源过期时间; Last-Modified 响应首部,表示资源最新修改时间...304 说明无需再次传输请求内容,也就是说可以使用缓存内容。 206 不完全响应,只返回局部信息,常用在断点续传中。...这意味着每次都会发起 HTTP 请求。设置 max-age=0 功能与之类似。...must-revalidate 这个指令通常 max-age 一起使用,当设定 max-age 到期后,客户端会向服务端发起网络请求,验证缓存资源是否还有效。它像是延迟版 no-cache。

79240

HTTP 缓存

协商缓存 浏览器第一次请求数据时,服务器会将缓存标识数据一起返回给客户端,客户端将二者备份至缓存数据库中。...再次请求数据时,客户端将备份缓存标识发送给服务器,服务器根据缓存标识进行判断,判断成功后,返回304状态码(表示客户端拥有可能过期缓存会携带Etag,时间询问服务器,服务器返回304则表示缓存有效)...在 HTTP/1.1 中,会优先处理 max-age指令,它优先级高,但是在 HTTP/1.0 中,max-age 指令会被忽略掉,就处理Expires指令。...Cache-Control 是用来控制缓存行为,在HTTP1.1中,通过Cache-Control通用首部字段来控制缓存 Cache-Control请求中max-age:出现在请求报文中,表示缓存资源时间小于小于该...如果no-cache后面指定头部,但是客户端后续请求响应不包含这些头部可以直接使用缓存 max-age:出现在响应报文中,表示缓存缓存资源服务器保存时间 s-maxage:max-age指令类似

63931

用 cURL 请求测试 ETag 浏览器缓存

简而言之,ETag 标识符是一个值,通常是一个散列,代表特定 Web 资源版本。该资源 ETag 值一起缓存在浏览器中,并且服务器会在确定特定缓存资源是否已更改时使用该值。...如果服务器回复说两次请求之间 etag 没有改变,则响应将会带有 304 代码,从而将使用缓存资源。...压缩缓存资源进行交互 如果查看浏览器网络检查器,您可能会注意到资源 etag 哈希值附加了 -df 值。...结果收到了 304 响应,指示资源没有更改,我们应该使用本地缓存副本。...由于我是使用内容交付网络(CDN)处理缓存新手,因此对于测试缓存如何任何给定资源 etag 哈希一起工作对我来说非常有用。

1.3K10

HTTP缓存控制小结

HTTP缓存首部字段优先级? HTTP缓存首部字段特点局限性? 用户不同页面刷新行为差别? 在实践中我们该用哪些报文头来控制缓存呢?...当然这种组合方式也会有些限制,比如 no-cache 就不能和 max-age、min-fresh、max-stale 一起搭配使用。...以下对这三种访问情况进行实践讨论。 准备工作: 为了模拟第一次访问某网站,清除相关缓存内容。为了方便讨论对比,以下内容以腾讯课堂 index.css文件为例。...首次访问该网页,查看请求响应信息可以看到请求头部没有任何关于http缓存相关信息。而返回HTTPresponse包含了以下头部信息。...而在用户不同刷新页面行为中,二者结合也能很好利用HTTP缓存控制特性,无论是在地址栏输入URI然后输入回车进行访问,还是点击刷新按钮,浏览器都能充分利用缓存内容,避免进行不必要请求数据传输。

35220

详解web缓存(转)

2 HTTP头信息控制缓存 HTTP头信息控制缓存是通过Expires(强缓存)、Cache-control(强缓存)、Last-Modified/If-Modified-Since(协商缓存)、Etag...若最后修改时间较新,说明资源又被改动过,则响应整片资源内容(写在响应消息包体内),HTTP 200;若最后修改时间较旧,说明资源无新修改,则响应HTTP 304 (无需包体,节省浏览),告知浏览器继续使用所保存...,但Last-Modified却改变了,导致文件没法使用缓存,有可能存在服务器没有准确获取文件修改时间,或者代理服务器时间不一致等情形(无法使用缓存)。...web服务器收到请求后发现有头If-None-Match 则被请求资源相应校验串进行比对,决定返回200或304。...Etag是服务器自动生成或者由开发者生成对应资源在服务器端唯一标识符,能够更加准确控制缓存。Last-ModifiedETag一起使用时,服务器会优先验证ETag。

53920

HTTP缓存控制小结

HTTP缓存首部字段优先级? HTTP缓存首部字段特点局限性? 用户不同页面刷新行为差别? 在实践中我们该用哪些报文头来控制缓存呢?...当然这种组合方式也会有些限制,比如 no-cache 就不能和 max-age、min-fresh、max-stale 一起搭配使用。...以下对这三种访问情况进行实践讨论。 准备工作: 为了模拟第一次访问某网站,清除相关缓存内容。为了方便讨论对比,以下内容以腾讯课堂 index.css文件为例。...首次访问该网页,查看请求响应信息可以看到请求头部没有任何关于http缓存相关信息。而返回HTTPresponse包含了以下头部信息。...而在用户不同刷新页面行为中,二者结合也能很好利用HTTP缓存控制特性,无论是在地址栏输入URI然后输入回车进行访问,还是点击刷新按钮,浏览器都能充分利用缓存内容,避免进行不必要请求数据传输。

41330

HTTP缓存控制小结

HTTP缓存首部字段优先级? HTTP缓存首部字段特点局限性? 用户不同页面刷新行为差别? 在实践中我们该用哪些报文头来控制缓存呢?...当然这种组合方式也会有些限制,比如 no-cache 就不能和 max-age、min-fresh、max-stale 一起搭配使用。...以下对这三种访问情况进行实践讨论。 准备工作: 为了模拟第一次访问某网站,清除相关缓存内容。为了方便讨论对比,以下内容以腾讯课堂 index.css文件为例。...首次访问该网页,查看请求响应信息可以看到请求头部没有任何关于http缓存相关信息。而返回HTTPresponse包含了以下头部信息。...而在用户不同刷新页面行为中,二者结合也能很好利用HTTP缓存控制特性,无论是在地址栏输入URI然后输入回车进行访问,还是点击刷新按钮,浏览器都能充分利用缓存内容,避免进行不必要请求数据传输。

1.1K80

HTTP 缓存控制总结

因此,缓存和重用以前获取资源能力成为优化性能很关键一个方面。 序 本文用于解决以下六个疑问。 缓存相关HTTP首部字段主要有哪些? 这些HTTP首部字段之间联系区别?...HTTP缓存首部字段优先级? HTTP缓存首部字段特点局限性? 用户不同页面刷新行为差别? 在实践中我们该用哪些报文头来控制缓存呢? 文中使用1.html以及doge.png如下所示 <!...以下对这三种访问情况进行实践讨论。 准备工作: 为了模拟第一次访问某网站,清除相关缓存内容。为了方便讨论对比,以下内容以腾讯课堂 index.css文件为例。...首次访问该网页,查看请求响应信息可以看到请求头部没有任何关于http缓存相关信息。而返回HTTPresponse包含了以下头部信息。...而在用户不同刷新页面行为中,二者结合也能很好利用HTTP缓存控制特性,无论是在地址栏输入URI然后输入回车进行访问,还是点击刷新按钮,浏览器都能充分利用缓存内容,避免进行不必要请求数据传输。

62180

http请求头中缓存实现

什么是http缓存呢,当我们使用chrome浏览器,按F12打开控制台,在网络请求中有时候看到状态码是200,有时候状态码是304,当我们去看这种请求时候,我们会发现状态码为304状态结果是:Status...综上总结为: 请求头last-modified日期响应last-modified一致 请求头if-none-matchhash响应etag一致 这两种情况会返回Status Code:...disk cache 内存缓存相对,这个是将资源缓存在硬盘中。虽然相比于内存,硬盘读取速度要慢很多,但总比没有强。硬盘缓存控制权在后端,通过什么控制呢?...通过HTTP响应控制,也就是我们在上面说到catche-control和expires Expires设置过期时间是一个绝对GMT时间,例如:Expires:Thu,20 Jun 2019...HTTP1.1引入了Cathe-Control,它使用max-age指定组件被缓存多久,从请求开始在max-age时间内浏览器使用缓存,之外使用请求,这样就可以消除Expires限制, 如果对浏览器兼容性要求很高的话

1.8K30
领券