HTTP缓存原理
2024-09-04 04:37:50
http的缓存分为强制缓存和对比缓存,两者的区别在于,强制缓存只要设置的时间不过期,就可以直接拿去用,而不用向服务器再一次发送请求。而对比缓存不管缓存是否有效,都需要向服务器发送请求。
其过程如下:
1. 浏览器会先查询Cache-Control来判断内容是否过期,如果没有过期,直接读取浏览器缓存文件。(强制缓存)
2. 在浏览器上判断上次文件返回头中是否含有ETag,如果有则连同If-None-Match一起向服务器发送请求,服务器判断ETag是否失效,有效返回304读取缓存数据(对比缓 存)。失效返回200。ETag是有服务器生成的当前资源的唯一标识,如果资源发生改变,服务器会发送一个新的Etag。
3. 在浏览器端判断上次文件返回头中是否含有Last-Modified,有则连同If-Modified-Since一起想服务器发送请求,服务器判断Last-Modefied是有失效,有效返回304读取缓 存数据(对比缓存),失效返回200。
4. 如果ETag和Last-Modefied都没有,则直接向服务器发送请求内容。
最新文章
- 【ORACLE】IN 后跟&;参数字符串的处理方法
- ubuntu安装配置elasticSearch(vagrant)
- GTD
- request.getHeader所想到的
- 诺基亚XL中Intent.ACTION_VIEW无效的问题
- yii框架便利类CVarDumper使用
- Spring学习笔记之Constructor-based or setter-based DI?
- EDIUS和VEGAS哪个更好用
- PHP笔记-PHP中Web Service.
- Google面试题:计算从1到n的正数中1出现的次数
- STM32F051关于printf函数在串口打印中的使用
- 【C/C++多线程编程之九】pthread读写锁
- phpstorm+wamp+xdebug配置php调试环境
- 【洛谷P5018】对称二叉树
- 2017/2/10:Manven简介与项目管理(入门)
- Hadoop中ssh+IP、ssh+别名免秘钥登录配置
- 2018.06.29 NOIP模拟 Minimum(最小生成树)
- tomcat启动(六)Catalina分析-StandardServer.start()
- vi命令文件编辑
- Android开发13——内容提供者ContentProvider的基本使用
热门文章
- Sqoop的安装配置及使用
- 一种简单实用的双向电平转换电路3.3V-5V
- Django-Content-type用法
- OrCAD生成网表
- spring boot 连接mysql 错误The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one
- 自动化测试(一)-get和post的简单应用
- fiddler之弱网测试
- redux使用过程中遇到的两个致命的关键点
- 辨析ADK&;JVM&;JRE&;JDK&;ADT
- lintcode-63-搜索旋转排序数组 II