• 【浏览器缓存机制】


    浏览器缓存机制

    浏览器缓存机制是指浏览器在访问网站时,会将一些资源文件(如文档、样式、脚本、图片等)缓存到本地,以提高页面加载速度和减轻服务器压力的一种技术。

    常见的浏览器缓存机制有两种:强缓存和协商缓存。

    1. 强缓存

    强缓存是指在缓存有效期内,浏览器再次请求相同的资源时,直接从本地缓存中读取,不需要向服务器发送请求。其中,缓存有效期可以通过HTTP响应头来设置,常见的响应头有:

    • Expires:表示资源的过期时间,即Date+max-age,它是HTTP1.0规定的响应头。
    • Cache-Control:表示资源的缓存控制,可以设置的值有private、no-cache、no-store、max-age等等,它是HTTP1.1规定的响应头。

    2. 协商缓存

    协商缓存是指在缓存过期后,浏览器再次请求相同的资源时,会向服务器发送请求,并获取该资源的最新修改时间或唯一标识。如果资源有更新,服务器会返回304状态码,告诉浏览器直接读取本地缓存;如果资源没有更新,则服务器返回200状态码,告诉浏览器重新下载该资源。协商缓存的实现需要用到HTTP请求头和响应头:

    • If-Modified-Since:表示上次修改时间,它是HTTP1.0规定的请求头。
    • If-None-Match:表示唯一标识,它是HTTP1.1规定的请求头。
    • Last-Modified:表示最后一次修改时间,它是HTTP1.0规定的响应头。
    • ETag:表示唯一标识,它是HTTP1.1规定的响应头。

    总的来说,浏览器缓存机制可以有效缩短页面加载时间和减少网络流量,同时也需要开发者合理设置缓存时间和处理缓存更新的问题。

    协商缓存和强缓存区别

    协商缓存和强缓存都是浏览器缓存机制的一部分,但它们的实现方式和缓存过程有所不同。

    强缓存是通过Cache-ControlExpires这两个http响应头来实现的。服务器通过在响应头中设置Cache-ControlExpires字段告诉浏览器缓存时间。在缓存期内,浏览器再次访问相同的资源时会检查缓存是否有效,如果有效则直接使用缓存中的资源。因为缓存时间是由服务器来控制的,所以这种缓存策略不需要向服务器发送任何请求。

    而协商缓存则是通过Last-ModifiedETag这两个http响应头来实现的。当浏览器对某个资源进行请求时,服务器会返回一个带有Last-ModifiedETag字段的响应。浏览器在再次请求该资源时会带上一个带有If-Modified-SinceIf-None-Match字段的请求头,服务器会对这个请求头进行判断,判断资源是否发生了变化,如果没有变化则返回304 Not Modified,浏览器就会使用缓存中的资源。

    总的来说,强缓存是直接使用浏览器本地缓存,不需要与服务器进行通信,而协商缓存需要先与服务器进行一次通信,判断资源是否发生了变化,再决定是否使用本地缓存。强缓存性能更高,协商缓存更精确。

  • 相关阅读:
    leetcode724. 寻找数组的中心下标
    【数据结构与算法】手撕二叉查找树
    DAST 黑盒漏洞扫描器 第六篇:运营篇(终)
    如何解决前端上线之后用户页面不刷新的问题
    最重要的传输层
    Spring Cloud Stream 消息驱动微服务 相关图形,dljd,cat - spring cloud alibaba,p153完成
    【高等数学基础进阶】定积分与反常积分-定积分
    Vision Transformer
    LeetCode 单周赛298,前三题
    【算法竞赛刷题模板30】状态压缩dp题总结
  • 原文地址:https://blog.csdn.net/Ge_Daye/article/details/133561158