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

浏览器缓存顺序

浏览器缓存顺序

  1. 如果是第一次加载资源,浏览器就直接获取服务器返回的数据;
  2. 再次加载资源时,首先判断是否存在强缓存,再先看看catch-control 设置的max-age有没有过期,如果没有过期直接304加载本地缓存;
  3. 如果max-age已过期就开始协商缓存,于是携带Etag或者last-modify向服务器发起if-None-Matchif-Modify-Since请求,其中Etag的优先级比last-modify高,若两者同时发送过去会优先判断Etag,服务器接收到客户端发过来的Etag时会将其与最新资源的Etag作比较,若两者一致就返回304状态让客户端直接从本地缓存中加载;若不一致就返回最新资源
  4. 若没有Etag,则服务端就拿last-modify作比较,判断最后修改的时间是否一致,若一致则304,若不一致则返回新资源

注意:
last-modify的缺点是其精确单位为秒,所以可能会出现缓存判断不准确的情况,例如用户在1s内发送多次请求,若这1s内服务端资源已经改变,由于精确度问题会导致客户端误判为资源未更新,只会从本地缓存中获取资源

Etag的缺点是因为不同服务器存储的Etag值是不一样的,若出现负载均衡情况时也可能导致一致的数据却重新加载

相关文章:

  • LeetCode高频题:子串权值定义为,最长有效括号子序列的长度,请你返回字符串s的所有子串权值的和是多少
  • 使用Python,dlib进行对象实时追踪
  • Pytorch量化感知训练
  • 设计模式——迭代器模式
  • STM32F407的时钟
  • Opencv形态学——腐蚀、膨胀、开运算与闭运算、梯度运算、礼帽、黑帽
  • [Django开源学习 1]django-vue-admin
  • JavaEE初阶:网络编程套接字
  • JAVA猎才学员成长心得分享
  • 2022年0903我的SpringBoot框架入门的第一个程序
  • 【高阶数据结构】并查集的实现(含压缩路径)及其应用-C++版本
  • Java——线程不安全的原因(图解)
  • [数据结构]~双向+循环链表从(0~1)
  • 【开学季】再见大一,你好大二 | 完成自己的未完成
  • java毕业设计网站SSM版学生选课系统[包运行成功]
  • ES6核心特性
  • HashMap ConcurrentHashMap
  • JS+CSS实现数字滚动
  • Python 基础起步 (十) 什么叫函数?
  • Selenium实战教程系列(二)---元素定位
  • Vultr 教程目录
  • 如何用vue打造一个移动端音乐播放器
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • postgresql行列转换函数
  • (3)STL算法之搜索
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (篇九)MySQL常用内置函数
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .Net IE10 _doPostBack 未定义
  • .net refrector
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .net访问oracle数据库性能问题
  • .NET开发者必备的11款免费工具
  • @ConditionalOnProperty注解使用说明
  • [ NOI 2001 ] 食物链
  • [Asp.net MVC]Bundle合并,压缩js、css文件
  • [AutoSar NVM] 存储架构
  • [BeginCTF]真龙之力
  • [BZOJ1053][HAOI2007]反素数ant
  • [C/C++] C/C++中数字与字符串之间的转换
  • [CF226E]Noble Knight's Path
  • [DAX] MAX函数 | MAXX函数
  • [DNS网络] 网页无法打开、显示不全、加载卡顿缓慢 | 解决方案
  • [git] windows系统安装git教程和配置
  • [HCTF 2018]WarmUp (代码审计)
  • [IT生活推荐]大家一起来玩游戏喽,来的都进!
  • [Java、Android面试]_05_内存泄漏和内存溢出
  • [Java安全入门]三.CC1链
  • [JAVA设计模式]第二部分:创建模式
  • [JS] node.js 入门