zoukankan      html  css  js  c++  java
  • 缓存机制

    1.客户端请求的关于缓存的流程:

    对于一个数据请求来说,可以分为发起网络请求、后端处理、浏览器响应三个步骤。浏览器缓存可以帮助我们在第一和第三步骤中优化性能。比如说直接使用缓存而不发起请求,或者发起了请求但后端存储的数据和前端一致,那么就没有必要再将数据回传回来,这样就减少了响应数据。

    2.缓存的相关header:

    (1)判断本地有没有失效

    • expires(不常用):绝对时间,缓存有效期到具体哪天什么时间,但由于时区问题处理很麻烦。
    • Cache-Control(常用):相对时间,自客户端发起请求多长时间内有效。

    (2)向服务器校验时拿到的结果:

    • If-Modified-Since/Last-Modified :服务器会返回一个最后修改时间,客户端会存在If-Modified-Since,下次请求时问服务端,自这个时间后是否再修改过

    (3)生成hash

    • If-None-Match/Etag:服务端返回Etag,一个hash值。客户端再请求时,用If-None-Match里存的上次的Etag,来判断服务端的hash是否改变。

    注:(2)和(3)每次使用一种就可以。

    3.如果浏览器请求时,想返回的接口永远是200,不出现304。可以在浏览器的控制台,打开network。勾选Disable cache。

    此时,req的cache-control会出现no-cache。

    参考文章:

    深入理解浏览器的缓存机制     https://www.jianshu.com/p/54cc04190252

  • 相关阅读:
    7. JavaScript学习笔记——DOM
    6. Javscript学习笔记——BOM
    3. Javascript学习笔记——变量、内存、作用域
    2. Javscript学习笔记——引用类型
    1. JavaScript学习笔记——JS基础
    计算机网络学习笔记——网络层
    python小数据池,代码块知识
    pycharm快捷键
    字典
    04
  • 原文地址:https://www.cnblogs.com/kaiqinzhang/p/12072098.html
Copyright © 2011-2022 走看看