当前位置: 首页 > news >正文

强缓存和协商缓存

强缓存和协商缓存

强缓存是浏览器对之前请求过的文件进行缓存,以便下一次访问的时候重复使用节省带宽。强制缓存的工作原理是通过http响应头中的特定字段来控制的,包括expires cache-control 指示了资源的缓存有效时间,当浏览器在有效时间内请求统一资源的时候,会直接从本地缓存中获取资源,并不会向服务器发起请求。
协商缓存是浏览器与服务器之间进行通信以确认资源是否任然有效的过程涉及到了etag 和if-none-match,以及last-modified和if-modified-since。Etag和ifnonematch 当浏览器第一次请求这个资源的时候,服务器会返回一个etag,是资源版本的唯一标识符。浏览器在后续请求该资源的时候,会在请求头中携带ifnonematch字段,值为接受到的etag。服务器会根据这个值来判断资源是否更新,如果有更新,服务器会返回新的资源和新的etag,如果没有更新,则返回304 告诉浏览器中可以使用缓存中的资源。
Last modified if modified since 类似于etag机制,但是last-modified记录的是资源最后修改的时间,会在请求头中携带ifmodified since字段,这个值为先前接收到的lastmodified ,会检查最后修改的时间是否在这个时间之后,如果是,说明资源有更改,返回最新的资源,如果不是,服务器返回304状态码。
在浏览器加载资源的时候,会检查强缓存是否命中,如果强缓冲有资源的副本,并且没有过期,则直接使用。不会发送http请求到服务器,只有当强缓冲未命中或者资源已经过期的时候,浏览器才会进行协商缓冲。
应用场景:强制缓存适用于不经常变动的静态资源,如图片、CSS和JavaScript文件。这些资源的变更频率较低,因此可以设置较长的缓存时间,以提高加载速度并减少服务器压力。协商缓存则适用于那些可能被频繁更新的资源,通过服务器的验证确保用户能够获取最新的资源内容。


http://www.mrgr.cn/news/16349.html

相关文章:

  • 【大数据算法】时间亚线性算法之:串相等判定算法。
  • Upload-LABS通关攻略【1-20关】
  • 【Python】简单的爬虫抓取
  • pycharm安装本地插件
  • 零基础转行学网络安全怎么样?
  • 【Python进阶】学习Python必须要安装PyCharm。一篇文章带你总结一下安装PyCharm的注意事项,文末附带PyCharm激活码!!!
  • 2024年交安安全员考试题库及答案
  • 【SuperCraft AI:无限工作流画布】
  • 基于Pytorch框架的深度学习HRnet网络人像语义分割系统源码
  • HCCL集合通信算法开发Hello World示例(超详细)
  • 了解依赖反转原则(DIP)、控制反转(IoC)、依赖注入(DI)及 IoC容器
  • css设置让整个盒子的内容渐变透明(非颜色渐变透明)
  • Ubuntu中qt类与类信号槽的创建及使用
  • vue3中ref绑定的节点顺序错乱
  • 用友U8 Cloud RepAddToTaskAction SQL注入漏洞复现
  • 如何在华为平板上开发一个web网页
  • 排序算法:
  • IPv6地址子网划分
  • Java:Instant时间
  • Codeforces Round 969 (Div. 2) 题ABC详细题解,包含(C++,Python语言描述)