精华内容
下载资源
问答
  • HTTP缓存策略,缓存、协商缓存
    2020-12-19 13:00:33

    浏览器缓存静态资源的本质是HTTP协议的缓存策略,其中分为强缓存和协商缓存,两种缓存都可以将静态资源缓存到本地,强制缓存是根据过期时间来决定是用本地缓存还是请求新资源;协商缓存每次都要经过服务器对比后决定采用本地缓存还是返回新资源。使用哪种缓存,是由HTTP的请求头来决定的。

    强缓存:采用 Expires,或者 cache-control:max-age=3600,来控制,这两者的区别是 Expires 是时期时间点,cache-control:max-age是一个时间跨度,Expires是http/1.0协议的产物,cache-control是http/1.1协议加入的特性。为什么要新添加这个特性,是因为 Expires 以服务器端时间为准,我们客户端的时间是可改变的,这样就可能会出现服务器端的时间和客户端时间不一致,客户端过期时间还是以服务器时间为过期时间点的问题。现阶段应该采用Expires的比较少了,大多采用cahe-control:max-age来做强缓存了,max-age可以精确的控制缓存,并且优先级高于 Expires。

    协商缓存:我们可以给html资源的请求头设置 cache-control: no-cache; 由服务器端针对这个文件生成一个唯一标识叫Etag,Etag通过响应头发送到客户端,当客户端再次请求的时候,将Etag赋值给If-none-match,发送给服务器,在服务器端对比if-none-match 和 服务器端的Etag,如果Etag值没有变更,则返回304 Not Modified,客户端采用本地资源,如果Etag变更,则返回新资源,并将新Etag传给客户端。

    强缓存使用场景:公共js\css\image等

    协商缓存使用场景:html资源

    更多相关内容
  • 浏览器缓存 浏览器缓存是浏览器在本地磁盘对用户最近请求过的文档进行存储,当访问者再次访问同一页面时,浏览器就可以直接从本地磁盘加载文档。 所以根据上面的特点,浏览器缓存有下面的优点: 减少冗余的数据...
  • 缓存和协商缓存

    2021-11-29 14:17:25
    网络方面的缓存分为三块 DNS缓存、HTTP缓存、CDN缓存,也有人把这里的 HTTP 缓存称为浏览器缓存 为啥要缓存 1.缓存的优点 (1)加快浏览器加载网页的速度,优化用户体验,让用户更快速的打开我们的...强缓存(不发请求到
    网络方面的缓存分为三块

    DNS缓存、HTTP缓存、CDN缓存,也有人把这里的 HTTP 缓存称为浏览器缓存

    为啥要缓存

    1.缓存的优点
    (1)加快浏览器加载网页的速度,优化用户体验,让用户更快速的打开我们的网页
    (2)减少对服务器的访问次数,减轻服务器的负担
    (3)节省带宽(就是节省钱…,因为很多带宽服务其实是按流量来计费的,同样对用户也可以省4G、5G流量…也省钱了)
    2. 有啥缺点
      如果资源一直被缓存了,那当资源发生更改时,用户就无法获取最新的信息了! 所以缓存虽好,可不能乱用。

    强缓存(不发请求到服务器)
    1. 强缓存是利用http头中的 ExpiresCache-Control 两个字段来控制的
    2. 第一次请求时,服务器把资源的过期时间通过响应头中的 ExpiresCache-Control 两个字段告诉浏览器,之后再请求这个的话,会判断有没有过期,没有过期就直接拿来用,不向服务器发起请求,这就是强缓存
    3. Expires 的值是一个绝对的时间,这个时间代表资源的失效时间,就是说在这个时间之前缓存始终有效,始终会读取缓存中的数据。但是,这里会有一个明显的缺点:因为它是一个绝对时间,当服务器时间与客户端时间有偏差时,就可能会导致缓存失效,比如用户随意修改了本地时间。
    4. Cache-Control,http1.1加入了Cache-Control ,它的值 max-age=2592001,表示资源的最大有效时间的“秒数”,是一个相对值,不会因为用户修改本地时间而导致失效。除了mas-age之外还有其他一些值:
      1)public/private: public表示客户端和代理服务器(如CDN)都可以缓存,private(默认值)表示只有客户端可以缓存;
      2)no-cache/no-store: no-cache 客户端缓存内容,但是是否使用缓存需要经过协商缓存来验证决定;no-store 所有内容都不会被缓存,即不使用强缓存,也不使用协商缓存;
    5. Expires 更多时候是为了兼容,在不支持 HTTP/1.1 的情况下才会发生作用,两者同时存在的话 Cache-Control 优先级高于 Expires
    6. 理解:强缓存就是缓存过期之后,不管资源有没有变化,都会重新发起请求,重新获取资源,而协商缓存实现了资源文件没有更新的情况下,过期了也不重新获取资源,继续使用旧资源
    协商缓存(发请求到服务器)
    1. 协商缓存就是强制缓存失效后,浏览器携带缓存标识向服务器发起请求,由服务器根据缓存标识决定是否使用缓存的过程
    2. 协商缓存是通过两对值来设置的: Last-Modified/If-Modified-Since 和 ETag/If-None-Match
    3. 第一次请求资源时,服务器除了会返回给浏览器上面说的过期时间,还会在响应头添加 Last-Modified 字段,告诉浏览器该资源的最后修改时间;然后浏览器再次请求的时候就把这个时间再通过另一个字段If-Modified-Since,发送给服务器;Last-Modified/If-Modified-Since它俩是成对的,是为了对比文件修改时间。服务器再把这两个字段的时间对比,如果是一样的,就说明文件没有被更新过,就返回状态码304(协商缓存命中)和空响应体给浏览器,浏览器直接拿过期了的资源继续使用即可;如果对比不一样说明资源有更新,就返回状态码200和新的资源。
    4. 但是如果本地打开了缓存文件,即使没有对文件进行修改,也会使得 Last-Modified/If-Modified-Since 不一样,导致服务器发送相同的资源,这个时候就有了 ETag/If-None-Match 感知文件精准度更高
    5. 第一次请求资源时,服务器除了会在响应头上返回Expires、Cache-Control、Last-Modified,还在返回Etag字段,表示当前资源文件的一个唯一标识。这个标识符由服务器基于文件内容编码生成,能精准感知文件的变化,只要文件内容不同,ETag就会重新生成;然后浏览器再次请求的时候就把这个文件标识 再通过另一个字段 If-None-Match,发送给服务器;对比 ETag/If-None-Match
    6. ETag 生成过程中需要服务器付出额外开销,会影响服务器端的性能,所以它并不能完全替代 Last-Modified,只能作为补充和强化
    总结
    1. 第一次请求资源时,服务器在响应头上返回Expires、Cache-Control、Last-Modified和Etag字段。
    2. Expires和Cache-Control是强缓存阶段的,强缓存最开始是使用Expires,它通过返回日期来控制缓存的时间,但是潜在的问题是如果浏器的时间和服务器的时间不一致就会产生缓存失效的问题;于是在HTTP1.1中提出了Cache-Control,Cache-Control通过返回接收到请后存储的时间来控制缓存的时间。当Expires和Cache-Control同时存在的时候,Cache-Control会优先考虑。
    3. 强缓存的缺点是不管资源有没有变化,都会重新发起请求,重新获取资源。而我们希望的是在资源文件没有更新的情况下,即使过期了也不新获取资源,继续使用旧资源。所以当强缓存失效后,就会进入协商缓存。
    4. Last-Modified和Etag是协商缓存阶段的,Last-Modified是记录文件最后一次修改的时间,但是有很多的缺点,如:在补课感知的时间改变了、周期性的变化以及打开文件却没有修改等,都会造成 Last-Modified修改。Etag则能精准感知文件的变化,只要文件内容不同,ETag就会重新生成。 Etag 感知文件精准度要高于Last-Modified但是Last-Modified 性能上要优于 Etag,因为 Etag 生成过程中需要服务器付出额外开销,会影响服务器端的性能,所它并不能完全替代 Last-Modified,只能作为补充和强化
    5. 协商缓存一般存储:HTML;强缓存一般存储:css, image, js,文件名带上 hash
    另外

    强缓存和协商缓存不是由前端设置,是第一次请求资源时,服务器加在响应头返回给浏览器😁

    参考

    https://www.cnblogs.com/garfieldzhong/p/12498121.html?ivk_sa=1024320u

    展开全文
  • Http缓存和协商缓存

    2022-04-15 22:01:52
    Cache-Control三、协商缓存1、定义2、设置协商缓存的方式 (Last-Modified , If-Modified-Since) & (ETag , If-None-Match)1) Last-Modified , If-Modified-Since2)Etag,If-None-Match对比: 一、缓

    一、缓存介绍

    1、什么是缓存?

    缓存是一种保存资源副本并在下次请求时直接使用该副本的技术。

    2、为什么需要缓存?

    如果没有缓存的话,每次网络请求都要加载大量的图片和资源,这会使页面的加载变慢许多。
    缓存的目的就是为了尽量减少网络请求的体积和数量,让页面加载的更快,节省带宽,提高访问速度,降低服务器压力。

    3、哪些资源可以被缓存?——静态资源(css、js、img)

    网站的 html 是不能被缓存的。因为网站在使用过程中 html 随时有可能被更新,随时有可能被替换模板。
    网页的业务数据也是不能被缓存的。比如留言板和评论区,用户随时都可以在底下评论,那数据库的内容就会被频繁被更新。

    二、强制缓存

    1、定义:

    强缓存:浏览器不会向服务器发送任何请求,直接从本地缓存中读取文件并返回。
    Status Code:200
    在这里插入图片描述
    在这里插入图片描述
    200 (from memory cache): 不访问服务器,一般已经加载过该资源且缓存存在了内存当中,直接从内存中中读取缓存。浏览器关闭后,数据将不存在(资源被释放掉了),再次打开相同的页面时,不会出现from memory cache。
    200 (from disk cache): 不访问服务器,已经在之间某个时间加载过该资源,直接从磁盘中读取缓存,关闭浏览器后,数组依然存在,因为是存在硬盘当中的,下次打开仍会from disk cache。
    优先访问memory cache,其次是disk cache,最后是请求网络资源

    2、设置强缓存的方式 Expires & Cache-Control

    Expires: 该值是一个GMT时间格式字符串,浏览器进行第一次请求时,服务器会在返回头部加上Expires。下次请求,如果设置了时间,并在设置的时间之前就可以直接读取缓存。
    Cache-Control: 该值是利用max-age判断缓存的生命周期,以秒为单位,如果在该生命周期内,则命中强缓存。比如max-age=300 ,则代表在这个请求正确返回时间的5分钟内再次加载资源,就会命中强缓存。
    cache-control:除了该字段外,还有下面几个比较常用的设置值:

    (1) max-age:用来设置资源(representations)可以被缓存多长时间,单位为秒;
    (2) s-maxage:和max-age是一样的,不过它只针对代理服务器缓存而言;
    (3)public:指示响应可被任何缓存区缓存;
    (4)private:只能针对个人用户,而不能被代理服务器缓存;
    (5)no-cache:强制客户端直接向服务器发送请求,也就是说每次请求都必须向服务器发送。服务器接收到 请求,然后判断资源是否变更,是则返回新内容,否则返回304,未变更。这个很容易让人产生误解,使人误 以为是响应不被缓存。实际上Cache-Control: no-cache是会被缓存的,只不过每次在向客户端(浏览器)提供响应数据时,缓存都要向服务器评估缓存响应的有效性。
    (6)no-store:禁止一切缓存(这个才是响应不被缓存的意思)。

    cache-control是http1.1的头字段,expires是http1.0的头字段,如果expires和cache-control同时存在,cache-control会覆盖expires,建议两个都写。
    如果 cache-control 与 expires 同时存在的话, cache-control 的优先级高于 expires

    在这里插入图片描述

    三、协商缓存

    1、定义

    协商缓存是一种服务端缓存策略,即通过服务端来判断某件事情是不是可以被缓存。
    服务端判断客户端的资源,是否和服务端资源一样,如果一致则返回304,反之返回200和最新的资源。

    在这里插入图片描述
    在上图中,表明了协商缓存的全过程。首先,如果客户端是第一次向服务器发出请求,则服务器返回资源和相对应的资源标识给浏览器。该资源标识就是对当前所返回资源的一种唯一标识,可以是Etag或者是Last-Modified,这两个字段将在图例结束后展开讲解。
    之后如果浏览器再次发送请求时,浏览器就会带上这个资源标识。此时,服务端就会通过这个资源标识,可以判断出浏览器的资源跟服务端此时的资源是否一致,如果一致,则返回304,即表示Not Found 资源未修改。如果判断结果为不一致,则返回200,并返回资源以及新的资源标识。至此就结束了协商缓存的过程。

    2、设置协商缓存的方式 (Last-Modified , If-Modified-Since) & (ETag , If-None-Match)

    1) Last-Modified , If-Modified-Since

    Last-Modified 资源最后修改的时间,对应请求头为 If-Modified-Since,Last-Modified 只能精确到秒级
    在这里插入图片描述
    当浏览器第一次发请求时,服务器返回资源并在返回头中返回一个Last-Modified 的值给浏览器。这个Last-Modified 的值给到浏览器之后,浏览器会通过 If-Modified-Since 的字段来保存 Last-Modified 的值,且 If-Modified-Since 保存在请求头当中。
    之后浏览器再次发送请求时,请求头会带着 If-Modified-Since 的值去找服务器,服务器此时就会匹配浏览器发过来的 If-Modified-Since 是否和自己最后一次修改的 Last-Modified的值相等。如果相等,则返回304,表示资源未被修改;如果不相等,则返回200,并返回资源和新的 Last-Modified的值。

    2)Etag,If-None-Match

    Etag 资源唯一标识,所谓唯一,可以想象是每个人的身份证,具有唯一性;Etag本质是一个字符串;对应请求头为 If-None-Match
    在这里插入图片描述
    当浏览器第一次发送请求时,服务器返回资源并返回一个 Etag 的值给浏览器。这个 Etag 的值给到浏览器之后,浏览器会通过 If-None-Match 的字段来保存 Etag 的值,且 If-None-Match 保存在请求头当中。
    之后当浏览器再次发送请求时,请求头会带着 If-None-Match 的值去找服务器,服务器此刻就会匹配浏览器发过来的 If-None-Match 是否和自己最后一次修改的 Etag 的值相等。如果相等,则返回 304 ,表示资源未被修改;如果不相等,则返回 200 ,并返回资源和新的 Etag 的值。

    3、对比

    • 当响应头部 Response Headers 同时存在 Last-ModifiedEtag 的值时,会优先使用Etag;
      Etag优先级是高于Last-Modifed的,所以服务器会优先验证Etag
    • Last-Modified 只能精确到秒级,而Etag可以更精确。
      Etag可以更精确
    • 如果资源被重复生成,而内容不变,则Etag更精确
      在这里插入图片描述
      在这里插入图片描述

    四、刷新操作对缓存的影响

    (1)正常操作

    定义: 地址栏输入 url ,跳转链接,前进后退等。
    对缓存的影响: 强制缓存有效,协商缓存有效。

    (2)手动刷新

    定义: F5 ,点击刷新按钮,右击菜单刷新。
    对缓存的影响: 强制缓存失效,协商缓存有效。

    (3)强制刷新

    定义: ctrl + F5 。
    对缓存的影响: 强制缓存失效,协商缓存失效。

    五、总结

    在这里插入图片描述

    参考于:https://juejin.cn/post/6974529351270268958#heading-27

    展开全文
  • 缓存和协商缓存区别过程

    千次阅读 2020-10-19 19:24:13
    1、强缓存(本地缓存) 1.1. 概念 直接使用本地的缓存,不用跟服务器进行通信 1.2. 相关header字段 expires 一个未来时间,代表请求有效期,没有过期之前都使用当前请求。 cache-control no-cache:不使用本地...

    1、强缓存(本地缓存)

    1.1. 概念

    不用跟服务器进行通信,直接使用本地缓存的资源

    1.2. 相关header字段

    • expires ------ HTTP1.0使用的expires
      一个未来时间,代表资源的有效期,没有过期之前都使用当前资源。

    • cache-control------HTTP1.1及其之后使用cache-control
      max-age: 当值设为max-age=300时,则代表在这个请求正确返回时间(浏览器也会记录下来)的5分钟内再次加载资源,就会命中强缓存。
      no-cache:不使用本地缓存。向浏览器发送新鲜度校验请求
      no-store:禁止浏览器缓存数据,也禁止保存至临时文件中,每次都重新请求,
      pubilc:任何情况下都缓存(即使是HTTP认证的资源)
      private:只能被终端用户的浏览器缓存,不允许CDN等中间层缓存服务器对其进行缓存。

    F5 刷新后无效,Ctrl + F5 强制刷新后无效
    如何重新加载缓存过的资源?----------更新页面中引用的资源路径,让浏览器主动放弃缓存,加载新资源

    2、协商缓存

    2.1、概念

    首先,将所缓存资源的信息发送给服务器,
    其次,让服务器判断资源是否已经更新了,

    • 若已更新,则返回更新后的资源;
    • 若没有更新,则返回304状态,告诉浏览器可直接使用本地缓存的资源,

    整个过程至少与服务器通信一次

    2.2、相关header字段

    • 响应头: Last-Modified
      请求头: If-Modified-Since ( 资源修改的时间 )

      1. 浏览器第一次发请求,服务器在返回的 respone 的 header 加上 Last-Modified,
      表示资源的最后修改时间
      
      2. 再次请求资源,在 requset 的 header 加上 If-Modified-Since ,
         值就是上一次请求返回的 Last-Modified 值
      
      3. 服务器根据请求传过来的值判断资源是否有变化,没有则返回 304,
         有变化就正常返回资源内容,更新 Last-Modified 的值
      
      4. 304 从缓存加载资源,否则直接从服务器加载资源
      
    • 响应头:Etag
      请求头:If-None-Match(标识符字符串)

      一个标识符字符串,表示文件唯一标识,只要文件内容改动,ETag就会重新计算。缓存流程和 Last-Modified 一样。

    2.3、Last-Modified 与 Etag 的对比:

    • 如果我们打开文件但并没有修改其内容,Last-Modified 也会改变,而Etag则不会改变。
    • Last-Modified 的时间单位为秒,如果一秒内对文件进行了多次修改,那么由于其时间单位是秒,所以Last-Modified不会改变,最终浏览器还是会去读取缓存资源,而此时缓存的资源已经过时了。
    • Etag的优先级高于Last-Modified。

    2.4、为什么协商缓存有两个属性一起出现

    协商缓存是浏览器判断资源是否可用,所以需要两个标识,

    第一个是第一次请求的响应头带上某个字段(Last-Modified或者Etag),

    第二个则是后续请求带上的对应请求字段(If-Modified-Since或者If-None-Match),

    两个标识一起出现才有意义,单独则没有什么效果。

    3、浏览器缓存过程(强缓存转协商缓存的过程)

    • 1.浏览器第一次加载资源,服务器返回200,浏览器将资源文件从服务器上请求下载下来,并把文件、文件的返回时间、response header一并缓存

    • 2.下一次加载资源时,先比较当前时间和上一次返回200时的时间差
      如果HTTP为1.0时,则用expires判断是否过期
      如果HTTP为1.1及其以上时,则查看cache-control,如果值是no-cache,则表示不缓存,则直接去请求数据;如果是max-age,则判断时间差是否大于max-age,若小于max-age,则表示没有过期,命中强缓存,不发请求直接从本地缓存读取该文件;如果时间差大于max-age,则表示资源过期了,则向服务器发送请求,并且header中携带有If-None-Match、If-Modified-Since、Etag值等

    • 3.如果服务器收到的请求头中,有Etag值优先根据Etag的值判断被请求的文件有没有做修改,
      如果Etag值一致则没有修改,命中协商缓存返回304,则读取缓存资源;
      如果Etag值不一致则有改动,则直接返回新的资源,并带上新的Etag值;

    • 4.如果服务器收到的请求头中,没有Etag值,则将If-Modified-Since被请求文件的最后修改时间做比对,
      如果一致则没有修改,命中协商缓存,返回304;
      如果不一致则有修改,则返回新的文件和并在响应头中携带last-modified ,下次请求时通过If-Modified-Since携带上last-modified的值;

    作者:肆意木
    链接:https://www.jianshu.com/p/f6525b0f8813
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    展开全文
  • 缓存和协商缓存浏览器缓存是浏览器将用户请求过的静态资源存储到电脑本地磁盘中,当再次访问时,就可以直接从本地缓存中加载而不需要去向服务器请求了。但是缓存也有缺点,如果服务端资源更新了,客户端没有强制...
  • 而缓存也分为缓存和协商缓存,而这一篇文章。 我们在最后介绍二者的区别,前面主要来说一下缓存的过程,加深理解。 1.为什么要有缓存? 我们设想一下,如果没有缓存,那么浏览器是怎么向服务端请求资源的。 不管...
  • 缓存: 当再次访问同一页面时,直接从本地读取缓存。 协商缓存:当再次访问同一页面时,先向服务器发起请求,询问缓存是否过期,如果不...强制缓存和协商缓存的区别_Alisane的博客-CSDN博客_缓存和协商缓存 ...
  • 缓存 memory cache 是内存中的缓存,主要包含当前页面中已经下载的资源,比如样式、脚本、图片等等。读取内存中的数据肯定比磁盘块,但是内存缓存的时间段,会随着进程的是否而释放。一旦我们关闭 Tab 页面,内存中...
  • 聊聊缓存与协商缓存前言一、缓存二、协商缓存三、如何设置缓存和协商缓存 前言 在学习缓存与协商缓存之前,我们先聊聊什么是缓存? 缓存是指浏览器(客户端)在本地磁盘中对访问过的资源保存过的副本文件。...
  • 浏览器的强制缓存和协商缓存
  • 目录浏览器请求时缓存的过程什么是缓存协商缓存缓存缓存的字段Cache-Control与Expires的优先级协商缓存协商缓存的字段Last-Modified与ETag的优先级浏览器刷新问题缓存的优缺点 之前陆续也看了很多关于缓存的...
  • 浏览器缓存分为:缓存和协商缓存两种。 缓存的优点: 减少了不必要的数据传输,节省带宽 减少服务器的负担,提升网站性能 加快了客户端加载网页的速度 用户体验友好 缺点: 资源如果有更改但是客户端不及时...
  • 浏览器缓存——缓存与协商缓存

    千次阅读 2022-01-28 20:19:41
    缓存与协商缓存
  • 先来说一下缓存的优点 减少了冗余的数据传递,节省宽带流量 减少了服务器的负担,大大提高了网站性能 ...强制缓存 ​ 当缓存数据库中已经有了请求的数据时,如果没有,客户端...no-cache:需要协商缓存验证数据 no-store
  • 缓存与协商缓存

    2022-03-08 10:10:39
    2、协商缓存:状态码304.会将一些资源信息返回给服务端,让服务端判断是否可以直接使用本地缓存,整个过程至少与服务器通信一次。 header:Last-Modified/Etag ,public,immutable cache-control:max-age=43200, ...
  • HTTP 缓存和协商缓存

    千次阅读 2019-09-25 13:54:36
    优势: 减少了冗余的数据传递,节省宽带流量 减少了服务器的负担,大大提高了网站性能 ...浏览器缓存一般是针对静态资源(js/css/img等),我们将缓存分为缓存和协商缓存,两者的主要区别是...
  • 浏览器缓存机制(缓存和协商缓存)

    千次阅读 多人点赞 2021-03-24 19:08:53
    浏览器缓存分为缓存和协商缓存,当存在缓存时,客户端第一次向服务器请求数据时,客户端会缓存到内存或者硬盘当中,当第二次获取相同的资源,缓存和协商缓存的应对方式有所不同。 缓存:当客户端第二次向...
  • http缓存:缓存、协商缓存

    千次阅读 2022-01-22 17:36:50
    强制缓存分为两种情况,ExpiresCache-Control。 协商缓存有两组报文结合使用: Last-ModifiedIf-Modified-Since ETagIf-None-Match
  • http协商缓存缓存

    2021-01-12 03:30:54
    通常浏览器的缓存策略分为两种:缓存和协商缓存。基本原理浏览器在加载资源的时候,会先根据这个资源的一些http header判断他是否命中缓存,缓存如果命中,浏览器直接从自己的缓存中读取资源,不会发请求到...
  • 简单讲缓存和协商缓存 缓存和协商缓存的问题网上的帖子特别多了,但大部分我看到最后感觉都是云里雾里。我感觉应该从最本质的问题上然后往里面去拓展的讲,尽量少一点黑话,才能更便于理解,一开始就直接上手会...
  • (1)、浏览器第一次向server发送请求,server返回response中的header中会包含expirescache-control两个参数,规定浏览器进入强缓存模式; (2)、待浏览器第二次向server发起请求,会强制走缓存,不向server发送...
  • 超实用的前端缓存与协商缓存 一、区别 缓存: 缓存后完全不向服务器发起任何请求,只在缓存时间过期后才对服务器发起请求, 响应码为 200 (from memory cache),即从内存中进行加载资源,请求时间为0ms以下 协商...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,367
精华内容 15,346
关键字:

强缓存和协商缓存的使用