zoukankan      html  css  js  c++  java
  • 计算机网络HTTP:HTTP缓存

    缓存命中 -> 缓存再验证成功 -> 缓存再验证失败 = 缓存未命中

    • Cache_Control

      可缓存性 解释
      public HTTP请求返回的过程中,在cache_control中设置这个值,代表HTTP请求返回的内容所经过的任何路径当中(包括中间一些HTTP代理服务器以及发出请求的客户端浏览器),都可以对返回内容进行缓存操作
      private 代表只有发起请求的浏览器才可以进行缓存
      no_cache 可以在本地进行缓存,但每次发请求时,都有向服务器进行验证,如果服务器允许,才能使用本地缓存
      no_store 本地和代理服务器都不可以存储缓存,每次都要重新请求,拿到内容
      no_transform 主要用在proxy服务器,不允许进行格式转换
    • max_age 和 Expires

      • 浏览器会先检查缓存是否过期,如果没有过期,就不向服务器发起请求,直接使用本地缓存,这叫做缓存命中。
      • max_age:最大缓存时间
      • Expires:有效期
      • 这两个同时存在时,max_age优先生效
    • Etag 和 Last_Modified

      • 如果没有max_age和Expires标签,或者验证失败,则浏览器向服务器发起请求,浏览器通过Etag或Last_Modified判断浏览器缓存的内容是否过期。
        • 如果没过期返回304(服务端已经执行了请求,但是响应没有改变),这叫做缓存再验证成功,浏览器更新本地缓存的max_age和Expires,并且使用本地缓存。
        • 如果过期了,这叫做缓存再验证失败(缓存未命中),则返回新的数据。
      • Etag:被请求变量的实体标记(与客户端请求头If_None_Match对应)
      • Last_Modified:被请求变量的最后修改时间(与客户端请求头If_Modified_Since对应)
      • 如果两者都有,就必须同时验证,并且两者都满足才会返回304
  • 相关阅读:
    Linux之wget命令
    Markdown语法
    Windows实时预览markdown
    Python基础教程,Python入门教程(非常详细)
    【转载】UNICODE与ASCII的区别
    Python之虚拟环境
    Linux文件系统管理
    Linux权限管理
    linux用户和用户组管理
    linux 软件安装
  • 原文地址:https://www.cnblogs.com/xiaobaizzz/p/12302043.html
Copyright © 2011-2022 走看看