码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • http协议的缓存机制


    浏览器的缓存分为两类:强缓存和协商缓存
    所谓的强缓存就是本地缓存,当请求资源的时候直接从本地缓存中调取资源,
    而协商缓存则是由服务器来确定缓存资源是否可用
    决定强缓存的两个重要字段是cathe-control和expires,expires的值为一个绝对时间的GMT格式的时间字符串,如果请求时间在expires之前则缓存可用,否则就会向服务器发送请求
    cathe-control:max-age=number,该number是一个设定的有效期,根据第一次获取资源的时间加上该有效期就能计算出该资源失效的时间,如果请求时间在失效时间之前则则说明缓存依然可用
    否则就要重新发送请求
    协商缓存对应的是两组信息:Etag/if-none-match,last-modified/if-modified-since
    last-modified / if-modified-since的值都是GMT格式的字符串,在第二次请求的资源时header头部就会携带if-modified-since值就是上次请求时返回的last-modified值,
    服务器再次受到请求后,会根据传过来的if-modified-since和资源的最后修改时间对比,如果相同就直接返回304Notmodified,那么客户端就直接从缓存中获取数据,但是如果不同,那么就把新的资源返回给客户端。
    Etag/if-none-match是服务器生成的每个资源的唯一标示符,一旦资源发生变化Etag就会发生变化,其判断过程与modified类似。
    Etag主要用来解决两个问题:
    一些服务器不能精确获取到最后文件修改的时间
    某些文件的修改频率过于频繁,比如说是在秒一下的时间修改,但是if-modified-since的精确粒度是s,所以需要使用到Etag。
    如果Etag和last-modified同时存在的话,那么优先检测ETag。

  • 相关阅读:
    使用 zeromq与cppzmq 程序退出遇到的坑
    A Survey on VQA: Datasets and Approaches
    在服务器导出kafka topic数据
    【软考】2023下半年系统集成项目管理工程师案例分析真题(第五批次)
    计算机组成原理:最全的简单题集合
    帝国CMS仿核弹头H5小游戏模板/92game帝国CMS内核仿游戏网整站源码
    linux 实时调度实现
    kudu集群数据节点(tserver)扩容(缩容)
    认证服务------功能实现逻辑
    观察者模式、订阅者发布者模式、vtk中的观察者模式
  • 原文地址:https://blog.csdn.net/duancsdn/article/details/126075314
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号