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:浏览器上保留的文件最后修改时间

  • 相关阅读:
    零基础入门深度学习(1)
    RxJava 复杂场景 Schedulers调度
    Kotlin 学习
    Cordova CrossWalk
    Android Studio工程导入另一个工程作为lib
    Android 数据存储相关
    Android Activity 生命周期中onStart()和onResume()的区别
    反省与规划
    Android 依赖注入 ButterKnife 基本使用
    Android Socket 相关
  • 原文地址:https://www.cnblogs.com/chenlifan/p/13651960.html
Copyright © 2011-2022 走看看