强缓存与协商缓存

这篇具有很好参考价值的文章主要介绍了强缓存与协商缓存。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


为了减少资源请求次数,加快资源访问速度,浏览器对资源文件如图片、css文件、js文件等有一个缓存功能。而浏览器缓存策略又分为强缓存和协商缓存
强缓存与协商缓存,缓存,前端,http

强缓存

强缓存与协商缓存,缓存,前端,http
所谓强缓存可以理解为强制缓存的意思,即浏览器在访问某个资源时会判断是否使用本地缓存理已经存在的资源文件,使用本地缓存的话则不会发送请求到服务器,从而达到减轻服务器访问压力的作用,且由于直接从本地缓存读取资源文件,大大提高了加载速度

强缓存的具体流程为:

  • 浏览器第一次请求远程服务器的某个资源时,如果服务器希望浏览器得到该资源后一段时间内不要再发送请求过来,直接从浏览器里的缓存读取,则服务器可以通过在响应头里设置Cache-Control:max-age属性

强缓存与协商缓存,缓存,前端,http
max-age代表缓存时间单位为毫秒,这里的数据换算过来就是一年,意味着在一年内浏览器不会再向服务器发送请求,使用缓存的话,状态码200后面会标明情况,像这样
强缓存与协商缓存,缓存,前端,http

  • 浏览器缓存资源的地方有两个,磁盘缓存(disk cache)和内存缓存(memory cache)

强缓存与协商缓存,缓存,前端,http
当缓存时间到期后再次访问时,状态码200后面便没有括号内的内容了
强缓存与协商缓存,缓存,前端,http

  • 强缓存除了使用Cache-Control实现之外,还可以使用Expires字段,Expires是HTTP1.0的规范,Cache-Control是HTTP1.1的规范,。Expires返回一个具体的时间值,代表缓存的有效期,在该日期内浏览器不会向服务器发起请求,而是直接从缓存里获取资源 ,因为Expires参照的是本地客户端的时间,而客户端的时间是可以被修改的,所以会有误差产生的情况,这也是Expires的一个缺点,所以有了后来HTTP1.1规范的Cache-Control。另外Cache-Control的优先级要高于Expires如果两者同时设置,会优先使用Cache-Control,而忽略掉Expires
    强缓存与协商缓存,缓存,前端,http
  • 在强缓存里是否使用缓存是由浏览器来确定的
    强缓存与协商缓存,缓存,前端,http

协商缓存

强缓存与协商缓存,缓存,前端,http

协商缓存是由粗武器来告诉浏览器是否使用缓存i资源,也就是浏览器每一次都要发送请求到服务器询问是否使用缓存
强缓存与协商缓存,缓存,前端,http

协商缓存的具体流程为:

  • 浏览器初次请求资源,服务器返回资源,同时生成一个Etag值携带在响应头里返回给浏览器
    强缓存与协商缓存,缓存,前端,http
  • 浏览器再次请求资源时会在请求头里携带If-None-Match,值是之前服务器返回的Etage的值

强缓存与协商缓存,缓存,前端,http

  • 服务器收到之后拿该值与资源文件最新的Etag值做对比,如果没有变化则返回304 ,告诉浏览器继续使用缓存(不返回资源文件)
  • 如果发生变化,则返回200和最新的资源文件给浏览器使用

除了Etag之外,浏览器还有一个Last-Modified的属性,t他是http1.0规范的,服务器返回Last-Modified,浏览器请求头对应携带的是If-Modified-since强缓存与协商缓存,缓存,前端,http
与Etag不同的是,Last-Modified的值是一个时间值,代表文件的修改时间,服务器通过对比文件的修改时间是否发生改变来判断是否使用缓存,相比于Last-Modified,Etag的优先级更高,使用上也更精确一些
因为有时候会存在文件内容没有被改变,但文件的修改时间变更了,Last-Modified不一致所以服务器会重新返回资源文件,实际上还是可以继续使用缓存的
强缓存与协商缓存,缓存,前端,http
最后普及一下常用的缓存
强缓存与协商缓存,缓存,前端,http

总结一下:文章来源地址https://www.toymoban.com/news/detail-722377.html

  1. 强缓存就哦i是浏览器本地根据服务器设置的过期时间来判断是否使用缓存,未过期则从本地里拿资源,已过期则重新请求服务器获取最新的资源
  2. 协商缓存则是浏览器本地每次都向服务器发起请求,由服务器来告诉浏览器是从缓存里拿资源还是返回最新资源给浏览器使用
  3. 强缓存优先级大于协商缓存,即两者同时存在时,如果强缓存开启且在有效期内,则不会走协商缓存

到了这里,关于强缓存与协商缓存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • http协议中的强缓存与协商缓存,带图详解

    此篇抽自本人之前的文章:http面试题整理 。 别急着跳转,先把缓存知识学会了~ http中的缓存分为两种:强缓存、协商缓存。 强缓存 响应头中的 status 是 200,相关字段有 expires(http1.0),cache-control(http1.1) ,两者同时出现时 cache-control 优先级更高。主要是利用 cache-control 的

    2024年03月16日
    浏览(52)
  • http强缓存和协商缓存的介绍和应用案例,简介明了

    强缓存:强缓存使用Expires(老版本)和cache-control(新版本)来控制 协商缓存:协商缓存使用if-Modified-Since 与 Last-Modified配对、If-None-Match与Etag配对来控制 优先级 强缓存:cache-control - expires 协商缓存:Etag Last-Modified 参数介绍 Expires:服务器设置资源过期时间,在http/1.1中无效

    2024年02月05日
    浏览(39)
  • 浏览器缓存(强缓存、协商缓存)

    这一点主要解析浏览器缓存以及缓存机制的详细过程。 与缓存相关的状态码: 200 ok    从浏览器下载的最新资源 200 (from memory cache)    不进行http请求,直接从浏览器内存中读取的资源,页面关闭,则资源释放,一般一些脚本、图片、文字等会存在内存中 200 (from disk cache) 

    2024年04月17日
    浏览(49)
  • 强缓存和协商缓存

    强缓存和协商缓存 缓存分为强缓存和协商缓存。强缓存不过服务器,协商缓存需要过服务器,协商缓存返回的状态码是304。两类缓存机制可以同时存在,强缓存的优先级高于协商缓存。当执行强缓存时,如若缓存命中,则直接使用缓存数据库中的数据,不再进行缓存协商。

    2024年02月07日
    浏览(35)
  • 强缓存与协商缓存

    为了减少资源请求次数,加快资源访问速度,浏览器对资源文件如图片、css文件、js文件等有一个缓存功能。而浏览器缓存策略又分为强缓存和协商缓存 所谓强缓存可以理解为强制缓存的意思,即浏览器在访问某个资源时会判断是否使用本地缓存理已经存在的资源文件,使用

    2024年02月07日
    浏览(42)
  • 对强缓存和协商缓存的理解

    浏览器缓存的定义: 浏览器缓存是浏览器在本地磁盘对用户最近请求过的文档进行存储,当访问者再次访问同一页面时,浏览器就可以直接从本地磁盘加载文档。 浏览器缓存分为强缓存和协商缓存。 浏览器是如何使用缓存的: 浏览器缓存的过程 1.浏览器第一次加载资源,服

    2024年02月13日
    浏览(44)
  • 浏览器强缓存与协商缓存

    强制缓存的思想是,在浏览器内置数据库中缓存每次请求中 “可以被缓存” (受到一些的管控)的静态资源如 image, css, js 文件, 当第二次请求被缓存过的资源时候,会通过校验两个字段 Expires 和 Cache-Control 的max-age字段(注意,Expires 是 http1.0 的产物, Cache-Control 则是

    2023年04月19日
    浏览(40)
  • 什么是强缓存和协商缓存

    强缓存是指浏览器在请求资源时,先检查本地缓存是否存在该资源的副本,并且该副本是否有效。如果有效,浏览器直接从本地缓存中获取资源,不会发送请求到服务器。 使用强缓存策略时,如果缓存资源有效,则直接使用缓存资源,不必在向服务器发起请求。 常见的强缓

    2024年02月11日
    浏览(37)
  • 【计算机网络】强缓存和协商缓存

    强缓存和协商缓存是浏览器缓存机制的两种不同策略,用于优化网页加载速度和减少网络请求。 强缓存(HTTP Cache-Control 和 Expires) : 强缓存是通过在HTTP响应头中设置相关字段来实现的,它告诉浏览器在一段时间内直接使用缓存的资源,而不必再向服务器发起请求。两个主要

    2024年02月10日
    浏览(44)
  • nginx配置浏览器缓存(强缓存、协商缓存、无缓存)

    下载地址:点击下载nginx 根据系统选择要下载的安装包,这里最好选择稳定版(stable version)。 下载好后解压该zip,将解压后的文件夹放在自己喜欢的目录下,我是放在J盘(自己分的磁盘)下。 进入J:nginx-1.22.0目录,目录结构: 注:project目录是我自己创建的,用于存放打包

    2024年02月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包