Nginx中浏览器缓存的执行流程
浏览器缓存的执行流程
HTTP协议中和页面缓存相关的字段,我们先来认识下:
header | 说明 |
---|---|
Expires | 缓存过期的日期和时间 |
Cache-Control | 设置和缓存相关的配置信息 |
Last-Modified | 请求资源最后修改时间 |
ETag | 请求变量的实体标签的当前值,比如文件的MD5值 |
(1)用户首次通过浏览器发送请求到服务端获取数据,客户端是没有对应的缓存,所以需要发送request请求来获取数据;
(2)服务端接收到请求后,获取服务端的数据及服务端缓存的允许后,返回200的成功状态码并且在响应头上附上对应资源以及缓存信息;
(3)当用户再次访问相同资源的时候,客户端会在浏览器的缓存目录中查找是否存在响应的缓存文件
(4)如果没有找到对应的缓存文件,则走(2)步
(5)如果有缓存文件,接下来对缓存文件是否过期进行判断,过期的判断标准是(Expires),
(6)如果没有过期,则直接从本地缓存中返回数据进行展示
(7)如果Expires过期,接下来需要判断缓存文件是否发生过变化
(8)判断的标准有两个,一个是ETag(Entity Tag),一个是Last-Modified
(9)判断结果是未发生变化,则服务端返回304,直接从缓存文件中获取数据
(10)如果判断是发生了变化,重新从服务端获取数据,并根据缓存协商(服务端所设置的是否需要进行缓存数据的设置)来进行数据缓存。
Nginx中浏览器缓存的执行流程相关推荐
- Nginx中浏览器缓存的相关概念
什么是缓存 缓存(cache),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器, 通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术.缓存的设置是 所有现代 ...
- 19. OP-TEE中TA与CA执行流程详解-------软件架构篇
历经一年多时间的系统整理合补充,<手机安全和可信应用开发指南:TrustZone与OP-TEE技术详解 >一书得以出版,书中详细介绍了TEE以及系统安全中的所有内容,全书按照从硬件到软件, ...
- 【spring源码系列-05】refresh中prepareRefresh方法的执行流程
Spring源码系列整体栏目 内容 链接地址 [一]spring源码整体概述 https://blog.csdn.net/zhenghuishengq/article/details/13094088 ...
- Nginx关于浏览器缓存相关的配置指令
浏览器缓存相关指令 Nginx需要进行缓存相关设置,就需要用到如下的指令 expires指令 expires:该指令用来控制页面缓存的作用.可以通过该指令控制HTTP应答中的"Expires ...
- Nginx配置浏览器缓存
一. 浏览器从哪读取缓存 memory cache 当直接刷新页面的时候,页面资源会从内存中直接获取 disk cache 如果服务器指定了强缓存它会缓存到硬盘上,如果网页关掉再打开浏览器会从磁盘上去 ...
- 2.11 Nginx控制浏览器缓存
浏览器缓存: 加速用户访问,提升单个用户(浏览器访问者)体验,缓存在本地 Nginx缓存 缓存在nginx端,提升所有访问到nginx这一端的用户 提升访问上游(upstream)服务器的速度 用户访 ...
- python中嵌套循环的运行原理_python中while嵌套循环的执行流程问题?
1. while x < 3: print("x的当前值为%d" % x) y = 0 while y < 3: print("y的当前值为%d" ...
- 三、nginx设置浏览器缓存[expires]
一.浏览器缓存 解释:浏览器缓存极大缓解了带宽压力,提高了用户体验. 访问页面-查看是否有缓存,如果没有过期,直接击中缓存,不向服务器发送请求 访问页面-查看是否有缓存,如果过期,向服务器发送请求(分 ...
- loadrunner中浏览器缓存设置
你可以进行Run-Time Setting设置来匹配你的浏览器设置,例如: 浏览器设置 Run-Time Setting 每次访问此页时检查 勾选Simulate Browser Cache 勾选Ch ...
最新文章
- redis报protocol error的真正原凶
- TORCH MAXIMUM
- 标记的用法(小例子)
- JAVA入门级教学之(异常的处理try...catch)
- append生成新变量的时候,没有如预期(It's a feature,not a bug?)
- fast group合计 report_FastReport报表设计.doc
- v-model 维护组件内外数据双向同步
- “化鲲为鹏,我有话说”如何用鲲鹏弹性云服务器部署《Hadoop伪分布式》
- 新版DevEco不用USB线下载程序
- 【Android】Listview返回顶部,快速返回顶部的功能实现,详解代码。
- Jetty提交数据时报java.lang.IllegalStateException: Form too large270468>200000问题解决
- 【翻译】Ext JS 5的委托事件和手势
- Maven安装与配置教程
- 压缩文件密码暴力破解——cRARk使用方法
- hashcat进行rar密码破解可gpu运算
- 使用nodejs发送电子邮件
- 手把手教你玩转OpenWRT路由器系统,视频教程合集
- MAML算法详解(元学习)
- Rasa课程、Rasa培训、Rasa面试、Rasa实战系列之Sparsity
- 卫星环绕地球c语言编程,动画技术——卫星环绕地球