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

HTTP缓存

web缓存: 1.可以自动保存常见文档副本HTTP设备,当web请求抵达缓存时,如果存在缓存副本,就直接从本地存储设备返回,而不是去源服务器获取 2.缓存命中和未命中 3.HTTP再验证,检测服务器内容是否发生了变化...缓存对副本进行再验证时,会向服务器发送一个小再验证请求,如果没变化,服务器会返回304 Not Modified,get请求中添加if-modified-since会进行再验证 4.缓存命中率:由缓存提供服务占比...,命中率与缓存大小,用户兴趣相似点,数据变化,缓存配置等有关,40%命中率是合理,对降低整体时延很有好处 5.字节命中率:缓存提供字节流量在传输流量中占比,对节省带宽很有利 6.私有缓存,...协议扩展了HTTP对等缓存兄弟缓存 9.缓存处理步骤:接收请求=>解析请求=>查询本地副本(获取源服务器)=>新鲜度检测=>创建响应=>发送响应=>记录日志 10.文档过期:服务器返回头信息Cache-Control...而如果指定了max-age值,那么在此值内时间里就不会重新访问服务器,例如:Cache-control: max-age=5 表示当访问此网页后5秒内再次访问不会去服务器.

39220

HTTP 缓存

上一篇介绍了关于 HTTP 基础知识,本篇对 HTTP Cache 做一个完整介绍。...HTTP 头信息控制缓存 分为两种 强制缓存 协商缓存 强制缓存如果命中缓存则不需要和服务器端发生交互,而协商缓存不管是否命中都要和服务器端发生交互,强制缓存优先级高于协商缓存。...并且 Expires 是 HTTP/1.0 标准,现在更倾向于用 HTTP/1.1 中定义 Cache-Control。两个字段同时存在时也是 Cache-Control 优先级更高。...: 表明响应只能被单个用户(可能是操作系统用户、浏览器用户)缓存,是非共享,不能被代理服务器缓存 no-cache: 强制所有缓存了该响应用户,在使用已缓存数据前,发送带验证器请求到服务器。...不是字面意思上缓存(也就是说使用 no-cache 必须经过协商缓存) no-store: 禁止缓存,每次请求都要向服务器重新获取数据 协商缓存 缓存资源到期了,并不意味着资源内容发生了改变,如果和服务器资源没有差异

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

HTTP缓存

(Last-Modified)为版本号 基于内容:以资源内容hash(ETag)为版本号 协商是缓存失效(过期或弃用)之后才会发生事情 二.相关Header字段 HTTP Header字段分为4类:...,如果没有消息实体的话,就是与请求对应资源信息 P.S.关于HTTP Header更多信息,请查看4.2 Message Headers Pragma HTTP 1.0通用头字段,指定缓存策略 Pragma..." ":" HTTP-date 一个精确时间点,在此之前,缓存有效。...,返回412表示更新失败 If-None-Match 同上,行为相反(比较该字段值是否不一致),如果一致,返回304告诉客户端可以沿用缓存版本,否则返回新资源 Age 响应头字段,表示资源在代理服务器上已缓存时间...max-age = Date - Last-Modified / 10 默认缓存策略,就叫启发式缓存,启发式是说基于经验构造,没有严格依据 五.刷新行为 浏览器有3种不同刷新行为,在验证HTTP

85430

HTTP缓存

随着用户访问量越来越大,缓存变得越来越重要。HTTP文件缓存可以减少冗余数据传输;缓解网络瓶颈;降低对原始服务器请求;以及降低距离延迟。...HTTP没有为用户提供一种手段来区分响应是否缓存命中,还是访问原始服务器得到。...再验证 原始服务器内容可能会发生变化,缓存要不时对其进行检测,看看它们保存副本是否仍是服务器上最新副本,这些“新鲜度检测”被称为HTTP再验证(revalidation)。...如果已缓存标签与服务器文档中标签有所不同,就会执行请求方法。 如果服务器发送了一个实体标签,HTTP/1.1客户端就必须使用实体标签验证器。...控制缓存能力 服务器可以通过HTTP定义几种方式来指定在文档过期之前可以将其缓存多长时间。

63731

HTTP缓存

HTTP 缓存不是必须,但重用缓存资源通常是必要。它可以减少服务器压力,如果不使用缓存,每次发起请求都要求服务器发送相应数据,很多时候服务器发来内容并没有发生变化,就会“浪费”服务器带宽。...可以在客户端设置缓存,给缓存加上过期时间,如果期限没到就是用本地缓存内容。然而常见 HTTP 缓存只能存储 GET 响应,对于其他类型响应则无能为力。...缓存头部 HTTP 相关缓存头部一般有: Cache-Control 通用首部,它是缓存控制字段; Expires 响应首部,代表资源过期时间; Last-Modified 响应首部,表示资源最新修改时间...这意味着每次都会发起 HTTP 请求。设置 max-age=0 功能与之类似。...Pragma 它是 HTTP/1.0 通用头,它用来向后兼容只支持 HTTP/1.0 协议缓存服务器

76140

HTTP 缓存

前言 缓存是一种保存资源副本并在下次请求时直接使用该副本技术。 我们使用 HTTP 缓存,通过复用缓存资源,减少了客户端等待时间和网络流量,同时也能缓解服务器压力。...可以显著提升我们网站和应用性能。 虽然 HTTP 缓存不是必须,但重用缓存资源通常是必要HTTP 缓存是一个 web 性能优化重要手段。...HTTP 缓存类型 通常 HTTP 缓存策略分为两种: 强缓存 协商缓存。 从字面意思我们可以很直观看到它们差别: 强缓存即强制直接使用缓存。 协商缓存就得和服务器协商确认下这个缓存能不能用。...memory cache; 协商缓存 协商缓存会先向服务器发送一个请求,服务器会根据这个请求 request header 一些参数来判断是否命中协商缓存,如果命中,则返回 304 状态码并带上新...总结 通过前文,我们了解到 HTTP 缓存主要分: 强制缓存 协商缓存。 强制缓存由 Cache-Control,Exipres(HTTP1.0)控制。

27300

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

客户端检查资源超过有效期、强缓存命中失败情况下,则发出请求“询问”服务器是否资源真的过期了,询问同时在请求头要携带着资源「上次更新时间」或者「唯一实体标识」(不同http版本导致共存问题)。...《图解HTTP》 协商缓存 特点: 服务端校验 304 Not Modified状态码 Last-Modified Etag 304(Not Modified) 该状态码虽然是3XX类别,但是跟301...也就是说,如果命中协商缓存,服务端响应请求时,只会返回一个304状态码、并没有实际上文件内容,因此在响应体体积上节省是协商缓存优化点 HTTP/1.0 Last-Modified组 Last-Modified...他格式如: if-modified-since: Thu, 01 Jan 1970 00:00:00 GMT HTTP/1.1 Etag组 Etag (资源匹配信息) 响应首部字段,缓存一种强校验器...(注意:实际HTTP1.1请求中,两组字段同时包含在请求及响应头中,我这里为了加深组CP印象,分开阐述) 1、Last-Modified组整体流程如下: 服务器通过 Last-Modified 字段告知客户端

2.2K10

Web缓存 - HTTP协议缓存

HTTP 协议缓存 HTTP 协议缓存是我们本文讲解重点,它是通过 HTTP 头信息来控制缓存HTTP 头信息可以让你对浏览器和代理服务器如何处理你副本进行更多控制。...该流程就复杂多了,浏览器需要根据 HTTP 头信息来判断是否直接从缓存读取数据还是交由服务器来判断是否从缓存读取数据。 几种状态码区别: ?...下面我们就从该流程中出现 HTTP 状态码 200(from cache)和 304 来讲解 HTTP 协议缓存 HTTP 头信息。...显然,就是告诉浏览器缓存有效期。如果过期,缓存会检查源服务器以确定文件是否改变了。 Expires 头唯一有效值是 HTTP 时间,其他值无效,不会去缓存。...当服务器判断该缓存已经失效,那么就会返回新数据,HTTP 状态码为 200; 当浏览器判断该缓存还未失效,那么就会返回 HTTP 状态码为 304 (无需包体,节省流量),告知浏览器继续使用缓存

96320

前端缓存HTTP缓存

HTTP缓存几乎没用过,也不知道有没有不经意间使用了,因为HTTP缓存主要是服务器代码上设置HTTP第一次请求之后,服务器会在返回头部传回缓存参数。...然后第二次请求时候浏览器判断这些参数是什么缓存类型,相应返回。 HTTP缓存有强缓存和协商缓存(也有人叫对比缓存)。...对比缓存(协商缓存):HTTP状态码是304,是由服务器决定,F5刷新有效,CTRL+F5刷新无效,对比缓存key是成对出现: Last-Modify/If-Modify-Since: 响应端先返回一个...确实,大部分HTTP缓存是由服务器完成,关于前端怎么操作没查到相关文档,只知道可以通过meta标签禁用缓存和动态设置header。...缓存对于前端性能优化算是很大,推荐使用强缓存,然后用hash值方法消除强缓存影响。 如果有人知道前端怎么去操作HTTP缓存,希望可以指教一下。 (完)

57610

HTTP系列之:HTTP缓存

简介 为了提高网站访问速度和效率,我们需要设计各种各样缓存,通过缓存可以避免不必要额外数据传输和请求,从而提升网站请求速度。对于HTTP协议来说,本身就自带有HTTP缓存。...HTTP缓存种类 缓存就是将请求资源在本地保存一份拷贝,从而在下一次请求时候,直接返回该拷贝,不用再从服务器下载资源,从而减少了资源传输提升了效率。...HTTP缓存响应状态 对于HTTP缓存来说,一般缓存是GET请求,因为GET请求除了URI之外,并没有其他多余参数,并且其表示意义是从服务器获取资源。...HTTP缓存控制 HTTP缓存控制是通过HTTP头来表示。在HTTP1.1中加入了Cache-Control,我们可以通过Cache-Control来控制请求和响应缓存情况。...revving 为了提升HTTP请求效率,我们当然希望缓存时间越长越好,但是前面我们也提到了,缓存时间过长会导致服务器资源更新困难问题。怎么解决呢?

54900

HTTP系列之:HTTP缓存

简介 为了提高网站访问速度和效率,我们需要设计各种各样缓存,通过缓存可以避免不必要额外数据传输和请求,从而提升网站请求速度。对于HTTP协议来说,本身就自带有HTTP缓存。...HTTP缓存种类 缓存就是将请求资源在本地保存一份拷贝,从而在下一次请求时候,直接返回该拷贝,不用再从服务器下载资源,从而减少了资源传输提升了效率。...HTTP缓存响应状态 对于HTTP缓存来说,一般缓存是GET请求,因为GET请求除了URI之外,并没有其他多余参数,并且其表示意义是从服务器获取资源。...HTTP缓存控制 HTTP缓存控制是通过HTTP头来表示。在HTTP1.1中加入了Cache-Control,我们可以通过Cache-Control来控制请求和响应缓存情况。...revving 为了提升HTTP请求效率,我们当然希望缓存时间越长越好,但是前面我们也提到了,缓存时间过长会导致服务器资源更新困难问题。怎么解决呢?

47310

HTTP 缓存原理

一、浏览器缓存优点 1.减少了冗余数据传输 2.减少了服务器负担,大大提升了网站性能 3.加快了客户端加载网页速度 二、浏览器缓存机制 1....,直接使用缓存数据 Cache-Control 是最重要规则,默认为private Cache-Control取值 说明内容 private 客户端可以缓存 public 客户端和代理服务器都可缓存...) 再次请求服务器时,通过此字段通知服务器上次请求时,服务器返回资源最后修改时间 Etag (Response Headers) 服务器响应请求时,告诉浏览器当前资源在服务器唯一标识(生成规则由服务器决定...) If-None-Match (Request Headers) 再次请求服务器时,通过此字段通知服务器客户段缓存数据唯一标识 注: Etag  /  If-None-Match(优先级高于Last-Modified...对于协商缓存,将缓存信息中Etag和Last-Modified通过请求发送给服务器,由服务器校验,返回304状态码时,浏览器直接使用缓存

31900

http请求缓存

思路: 定义一个http状态map,存储请求pending和complete,目的是为了解决同一个请求,在同一时间发起多次请求,为了避免发起多次同一个接口,存储status,本次request尚未【...success】(非error),不发起下一次同一接口 定义回调map,存储请求回调函数,目的是为了,请求成功之后,触发回调,尤其是同一时间发起多次同一个request,当一个pending时,其他均置于...map回调中,当success时,以此触发每个回调 定义一个返回值map,存储每个request结果,当下一次发起同一个请求时,去缓存里查找同时返回对应结果,如果未查到,则发起请求 定义请求id,...以参数、url以及请求方式当id,以此判断这次请求在缓存中是否有这个id import { singleton } from "....,或者报错,进而导致后续http均不会收到数据,所以该方法应该有重试功能 在这里没有考虑并发问题,应该考虑下,同时发起大量http请求问题 上述2、3问题,时间关系,后续优化~

37450

http缓存机制

http1.0 响应头中设置 Expires值为格林威治时间 就是告诉客户端,此资源请求可以用到指定时间点,在此时间之前,都要重新发请求到服务器请求这个资源,强制读取缓存 缺点 服务器时间可能和客户端时间不同...,所以这种缓存策略不是特别靠谱 res.setHeader('Expires', new Date(Date.now()+10000).toUTCString()) http1.1 响应头中设置 cache-control...('Cache-Control','max-age=20') 协商缓存 last-modified&if-modified-Since 这是一组通过协商修改时间为基础策略 客户端==========...《==========未过期应答304 index.js《================服务器端 大概意思是,每次都会请求到服务,由服务器根据客户端发来if-mofied-since(就是首次请求服务器相应...last-modified时间)时间,判断这个时间是判断是否协商缓存命中,如果缓存命中,服务器返回状态码304,内容为空即可,否则返回200,内容为最新资源 res.setHeader('Cache

57320

详解HTTP缓存

HTTP缓存是一项重要且常见web性能优化手段。当通过浏览器发送HTTP请求时,如果浏览器本地有所要请求文档副本,那么浏览器可以直接从本地存储中读取该文档,而不用到服务器上下载该文档。...使用HTTP缓存具有如下几点好处: 减少冗余数据传输 缓解网络瓶颈 减缓服务器压力 降低请求时延 既然HTTP缓存有诸多好处,那么其背后原理是怎样呢?...由上图可知浏览器是根据一定缓存规则对数据进行缓存,那么具体是怎样缓存规则呢?HTTP缓存有多种规则,根据是否需要重新向服务器发起请求来分类,可分为两大类:强制缓存和对比缓存。...对比缓存指的是每次发送HTTP请求时,如果本地有缓存数据,那么浏览器也需要发送额外HTTP请求与服务器进行对比,以确定本地数据是否过期。...Etag响应头值为当前资源在服务器唯一标识(生成规则由服务器决定),在浏览器第一次发起HTTP请求时,服务器会返回该响应头。

75650

图解 HTTP 缓存

本文首发于政采云前端团队博客:图解 HTTP 缓存前言 HTTP 缓存机制,可以说这是前端工程师需要掌握重要知识点之一。...本文将针对 HTTP 缓存整体流程做一个详细讲解,争取做到大家读完整篇文章后,对缓存有一个整体了解。 HTTP 缓存分为 2 种,一种是强缓存,另一种是协商缓存。...这是缓存运作一个整体流程图: [7vhuojez0z.jpeg] Http缓存.jpg 强缓存 不需要发送请求到服务端,直接读取浏览器本地缓存,在 Chrome Network 中显示 HTTP...,超过间隔秒数缓存失效 no-cache:不使用强缓存,需要与服务器验证缓存是否新鲜 no-store:禁止使用缓存(包括协商缓存),每次都向服务器请求最新资源 private:专用于个人缓存,中间代理...在文章最后,我们再次回到这张流程图,这张图涵盖了 HTTP 缓存整体流程,大家对整体流程熟悉后,也可以自己动手通过 Node 来验证下 HTTP 缓存

69720

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券