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

HTTP 缓存

Cache 几乎无处不在,CPU 的 L1 L2 L3 Cache、iOS 系统的 clean page 和 dirty page 机制、HTTP 的 tag 机制等等,这些背后都是 Cache 设计思想的应用...上一篇介绍了关于 HTTP 的基础知识,本篇对 HTTP Cache 做一个完整的介绍。...HTTP 头信息控制缓存 分为两种 强制缓存 协商缓存 强制缓存如果命中缓存则不需要和服务器端发生交互,而协商缓存不管是否命中都要和服务器端发生交互,强制缓存的优先级高于协商缓存。...判断是否命中协商缓存 若命中,则从缓存获取资源 未命中,则使用服务器端返回的资源 强制缓存 可以理解为无须验证的缓存策略。...并且 Expires 是 HTTP/1.0 的标准,现在更倾向于用 HTTP/1.1 中定义的 Cache-Control。两个字段同时存在时也是 Cache-Control 的优先级更高。

67530

HTTP缓存

(Last-Modified)为版本号 基于内容的:以资源内容hash(ETag)为版本号 协商是缓存失效(过期或弃用)之后才会发生的事情 二.相关Header字段 HTTP Header字段分为4类:..." ":" HTTP-date 一个精确的时间点,在此之前,缓存有效。...这个时间点由server给出,如果client与server的时间不同步,缓存过期策略就不可靠了 无法保证Expires给出的时间点在client和srever对应同一个时刻,所以HTTP 1.1新增了可以通过...= Date - Last-Modified / 10 默认的缓存策略,就叫启发式缓存,启发式是说基于经验构造的,没有严格的依据 五.刷新行为 浏览器有3种不同的刷新行为,在验证HTTP缓存时很容易被迷惑.../1.1:RFC 2616 浏览器缓存机制剖析:缓存机制流程图不错,Header字段含义描述不正确 HTTP缓存控制小结:内容很准确,且较全面 Increasing Application Performance

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

    HTTP 缓存

    缓存 什么是缓存 缓存称为数据交换的缓存区。 当某一个硬件要读取数据时候,会首先从缓存中查找数据,如果有,直接将数据返回,如果没有再从内存中获取数据。缓存获取数据的速度远比内存快。...所以HTTP请求都采用缓存的策略,避免重复请求服务器,增加服务器压力。...表述语言:Accept-Lauguage:zh-CN,zh Expires 在HTTP1.0中开始使用,表示一种资源过期的头部,描述的绝对时间是由服务器返回。...在 HTTP/1.1 中,会优先处理 max-age指令,它优先级高,但是在 HTTP/1.0 中,max-age 指令会被忽略掉,就处理Expires指令。...Cache-Control 是用来控制缓存的行为,在HTTP1.1中,通过Cache-Control通用首部字段来控制缓存 Cache-Control的请求中的值 max-age:出现在请求报文中,表示缓存资源的时间小于小于该

    65731

    HTTP缓存

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

    82640

    HTTP 缓存

    前言 缓存是一种保存资源副本并在下次请求时直接使用该副本的技术。 我们使用 HTTP 缓存,通过复用缓存资源,减少了客户端等待时间和网络流量,同时也能缓解服务器端的压力。...虽然 HTTP 缓存不是必须的,但重用缓存的资源通常是必要的,HTTP 缓存是一个 web 性能优化的重要手段。 HTTP 缓存的类型 通常 HTTP 缓存策略分为两种: 强缓存 协商缓存。...HTTP 缓存控制 在 HTTP 中,我们可以通过设置响应头以及请求头来控制缓存策略。 强缓存可以通过设置Expires和Cache-Control 两种响应头实现。...Expires Expires 响应头,它是 HTTP/1.0 的产物。代表该资源的过期时间,其值为一个绝对时间。它告诉浏览器在过期时间之前可以直接从浏览器缓存中存取数据。...总结 通过前文,我们了解到 HTTP 缓存主要分: 强制缓存 协商缓存。 强制缓存由 Cache-Control,Exipres(HTTP1.0)控制。

    29800

    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.4K10

    前端缓存HTTP缓存

    今天自己学习了一些关于前端缓存的东西,不一定有什么特别的用,仅让自己知道缓存,说不定哪天就用上了。 前端分为HTTP缓存和浏览器缓存。...HTTP缓存几乎没用过,也不知道有没有不经意间使用了,因为HTTP缓存主要是服务器代码上设置的。 HTTP第一次请求之后,服务器会在返回的头部传回缓存的参数。...然后第二次请求的时候浏览器判断这些参数是什么缓存类型,相应的返回。 HTTP缓存有强缓存和协商缓存(也有人叫对比缓存)。...说了这么多,HTTP缓存跟前端有什么关系?确实,大部分HTTP缓存是由服务器完成,关于前端怎么操作的没查到相关的文档,只知道可以通过meta标签禁用缓存和动态设置header。...缓存对于前端的性能优化算是很大的,推荐使用强缓存,然后用hash值的方法消除强缓存的影响。 如果有人知道前端怎么去操作HTTP缓存,希望可以指教一下。 (完)

    60510

    Web缓存 - HTTP协议缓存

    浏览器缓存控制机制 浏览器缓存控制机制有三种:HTML5离线存储和本地缓存、HTML Meta 标签、HTTP 协议缓存。...HTTP 协议缓存 HTTP 协议缓存是我们本文讲解的重点,它是通过 HTTP 头信息来控制缓存的,HTTP 头信息可以让你对浏览器和代理服务器如何处理你的副本进行更多的控制。...下面我们就从该流程中出现的 HTTP 状态码 200(from cache)和 304 来讲解 HTTP 协议缓存中的 HTTP 头信息。...当服务器判断该缓存已经失效,那么就会返回新数据,HTTP 状态码为 200; 当浏览器判断该缓存还未失效,那么就会返回 HTTP 状态码为 304 (无需包体,节省流量),告知浏览器继续使用缓存。...虽然它属于 HTTP 一致性测试仪,但却可以找到不少 HTTP 相关问题。 用户行为与缓存 用户的一些行为会影响到浏览器的缓存,具体如下: ? 完整流程图 ?

    98420

    HTTP系列之:HTTP缓存

    简介 为了提高网站的访问速度和效率,我们需要设计各种各样的缓存,通过缓存可以避免不必要的额外数据传输和请求,从而提升网站的请求速度。对于HTTP协议来说,本身就自带有HTTP缓存。...今天我们就深入探讨一下HTTP中的缓存机制和使用。...HTTP缓存响应的状态 对于HTTP缓存来说,一般缓存的是GET请求,因为GET请求除了URI之外,并没有其他多余的参数,并且其表示的意义是从服务器获取资源。...HTTP中的缓存控制 HTTP中的缓存控制是通过HTTP头来表示的。在HTTP1.1中加入了Cache-Control,我们可以通过Cache-Control来控制请求和响应的缓存情况。...总结 到此,HTTP缓存就介绍完毕了,大家可以在实际的应用中对HTTP缓存加深理解。

    70300

    HTTP系列之:HTTP缓存

    简介 为了提高网站的访问速度和效率,我们需要设计各种各样的缓存,通过缓存可以避免不必要的额外数据传输和请求,从而提升网站的请求速度。对于HTTP协议来说,本身就自带有HTTP缓存。...今天我们就深入探讨一下HTTP中的缓存机制和使用。...HTTP缓存响应的状态 对于HTTP缓存来说,一般缓存的是GET请求,因为GET请求除了URI之外,并没有其他多余的参数,并且其表示的意义是从服务器获取资源。...HTTP中的缓存控制 HTTP中的缓存控制是通过HTTP头来表示的。在HTTP1.1中加入了Cache-Control,我们可以通过Cache-Control来控制请求和响应的缓存情况。...总结 到此,HTTP缓存就介绍完毕了,大家可以在实际的应用中对HTTP缓存加深理解。 本文已收录于 http://www.flydean.com/04-http-cache/

    50710

    详解HTTP缓存

    HTTP缓存是一项重要且常见的web性能优化手段。当通过浏览器发送HTTP请求时,如果浏览器本地有所要请求的文档副本,那么浏览器可以直接从本地存储中读取该文档,而不用到服务器上下载该文档。...使用HTTP缓存具有如下几点好处: 减少冗余的数据传输 缓解网络瓶颈 减缓服务器压力 降低请求时延 既然HTTP缓存有诸多好处,那么其背后的原理是怎样的呢?...接下来将为大家揭开HTTP缓存的神秘面纱。 一、第一次发送HTTP请求 为了方便理解,我们可以简单地认为浏览器存在一个缓存数据库,用于缓存数据。...由上图可知浏览器是根据一定的缓存规则对数据进行缓存的,那么具体是怎样的缓存规则呢?HTTP缓存有多种规则,根据是否需要重新向服务器发起请求来分类,可分为两大类:强制缓存和对比缓存。...对比缓存指的是每次发送HTTP请求时,如果本地有缓存数据,那么浏览器也需要发送额外的HTTP请求与服务器进行对比,以确定本地数据是否过期。

    78750

    HTTP缓存

    web缓存: 1.可以自动保存常见文档副本的HTTP设备,当web请求抵达缓存时,如果存在缓存副本,就直接从本地存储设备返回,而不是去源服务器获取 2.缓存命中和未命中 3.HTTP再验证,检测服务器上的内容是否发生了变化...缓存对副本进行再验证时,会向服务器发送一个小的再验证请求,如果没变化,服务器会返回304 Not Modified,get请求中添加if-modified-since会进行再验证 4.缓存命中率:由缓存提供服务的占比...,命中率与缓存大小,用户兴趣相似点,数据的变化,缓存配置等有关,40%的命中率是合理的,对降低整体时延很有好处 5.字节命中率:缓存提供的字节流量在传输流量中的占比,对节省带宽很有利 6.私有缓存,...比如web浏览器 7.共有代理缓存,实现层次化的多级缓存很有意义 8.网状缓存,内容路由,对等缓存;有些不是简单的层次结构而是构建复杂的网状关系缓存,这些代理缓存也可以称为内容路由器,ICP和HTCP...协议扩展了HTTP的对等缓存兄弟缓存 9.缓存处理步骤:接收请求=>解析请求=>查询本地副本(获取源服务器)=>新鲜度检测=>创建响应=>发送响应=>记录日志 10.文档过期:服务器返回头信息Cache-Control

    41020

    图解 HTTP 缓存

    本文首发于政采云前端团队博客:图解 HTTP 缓存前言 HTTP缓存机制,可以说这是前端工程师需要掌握的重要知识点之一。...本文将针对 HTTP 缓存整体的流程做一个详细的讲解,争取做到大家读完整篇文章后,对缓存有一个整体的了解。 HTTP 缓存分为 2 种,一种是强缓存,另一种是协商缓存。...这是缓存运作的一个整体流程图: [7vhuojez0z.jpeg] Http缓存.jpg 强缓存 不需要发送请求到服务端,直接读取浏览器本地缓存,在 Chrome 的 Network 中显示的 HTTP...在文章的最后,我们再次回到这张流程图,这张图涵盖了 HTTP 缓存的整体流程,大家对整体流程熟悉后,也可以自己动手通过 Node 来验证下 HTTP 缓存。...[7vhuojez0z.jpeg] Http缓存.jpg

    75320

    java http缓存

    HTTP/1.1中缓存的目的是为了在很多情况下减少发送请求,也即直接返回缓存;同时在许多情况下可以不需要发送完整响应。...前者减少了网络回路的数量,挺高响应速度,HTTP利用一个“过期(expiration)”机制来为此目的。后者减少了网络应用的带宽,HTTP用“验证(validation)”机制来为此目的。...HTTP定义了3种缓存机制: l Freshness allows a response to be used without re-checking it on the origin server,...缓存如何工作 所有的缓存都用一套规则来帮助他们决定什么时候使用缓存中的副本提供服务(假设有副本可用的情况下);一些规则在协议中有定义(HTTP协议1.0和1.1),一些规则由缓存的管理员设置(浏览器的用户或者代理服务器的管理员...); 一般说来:遵循以下基本的规则(不必担心,你不必知道所有的细节,细节将随后说明) 如果响应头信息:告诉缓存器不要保留缓存缓存器就不会缓存相应内容; 如果请求信息是需要认证或者安全加密的,相应内容也不会被缓存

    1.2K80

    HTTP 缓存技术

    HTTP 缓存技术缓存技术出现在HTTP1.1当中,目的是尽可能减少对于服务器进行请求。为了实现缓存技术,HTTP设计者在头部字段增加针对缓存的头部字段。HTTP 缓存有两种方式,强制缓存和协商缓存。...这三个字段基本囊括大部分HTTP缓存技术的应用场景。...缓存过程缓存的大致流程如下:客户端发起HTTP请求访问浏览器缓存,浏览器不存在缓存,告知客户端让它重新发请求。客户端再次发起HTTP请求到原始服务器,原始服务器返回结果和缓存规则。...Pragma主要作用是保持 HTTP1.0 向后兼容,因为缓存技术是在HTTP1.1中才出现的。比如让一些HTTP1.0的源服务识别客户端理解”无缓存“的请求头部,这时候Prama就可以派上用场。...如果存在HTTP1.1缓存技术的相关请求头部字段,在服务器可以识别的前提下,会优先解析HTTP1.1的请求头部,从而忽略Pragma头部。但是这里介绍的所有内容都是 HTTP1.0 约定俗成的东西。

    77900

    HTTP 缓存机制

    浏览器缓存也包含很多内容: HTTP 缓存、 indexDB 、 cookie 、 localstorage 等等。 这里要说的是 http 缓存。...失效:失效就是把内容从缓存中移除。当内容发生改变时就必须移除失效的内容。 机制 策略 1)缓存存储策略 缓存存储策略决定了客户端是否应该存储 http 的 response 。...与缓存存储有关的 http header 主要为 response header 中的 Cache-Control 。...: Public 设置我们可以将 HTTP 响应数据存储到本地,但此时并不意味着后续浏览器会直接从缓存中读取数据并使用, 因为它无法确定本地缓存的数据是否可用(可能已经失效),需通过缓存过期策略来判断...与缓存过期策略有关的 http header 为 Expires 。

    74520

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券