zoukankan      html  css  js  c++  java
  • 浏览器读取缓存流程

    1.浏览器会先去查看响应头部的cache-control(缓存控制)
    2.如果没有到达过期时间,会直接返回缓存中的内容,不需要重新读取服务器
    3.如果cache-control设置为 no-cache,浏览器会去读取expires(缓存过期时间)
    4.如果没有到达expires过期时间,会直接返回缓存中的内容,不需要重新读取服务器
    5.如果cache-control和expires都没有设置
    6.浏览器会去查看服务器上面ETag值,如果有浏览器会拿着 If-None-Match 去跟他对比
    7.如果ETag与浏览器的 If-None-Match 相同,则走缓存
    8.如果ETag与浏览器的 If-None-Match 不相同,浏览器会去查看服务器上面 Last-Modified值
    9.如果服务器上有 Last-Modified值,浏览器会拿着If-Modified-Since去跟他对比
    10.如果Last-Modified值与浏览器的 If-Modified-Since 相同,则走缓存
    11.如果Last-Modified值与浏览器的 If-Modified-Since 不相同,重新去服务器读取数据

    #含义
    1.cache-control:缓存控制,记录的时文件保留时间
    2.expires:缓存时间,记录的是文件的过期时间
    3.ETag:服务器上保留的文件唯一标识符
    4.If-None-Match:浏览器上保留的文件唯一标识符
    5.Last-Modified:服务器上保留的文件最后修改时间
    6.If-Modified-Since:浏览器上保留的文件最后修改时间

  • 相关阅读:
    对于软件工程这门课程的一些心得
    第一次冲刺(10)
    第一次冲刺(7~9)
    第一次冲刺(6)
    第一次冲刺(5)
    第一次冲刺(4)
    第一次冲刺(3)
    第一次冲刺(2)
    Arrays.asList 为什么不能 add 或者 remove 而 ArrayList 可以
    Javascript保证精度的小数乘法
  • 原文地址:https://www.cnblogs.com/chenlifan/p/13651960.html
Copyright © 2011-2022 走看看