• 计算机网络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
  • 相关阅读:
    6.素数和(素数的判断)
    6.素数和(素数的判断)
    5.明明的随机数(桶排序经典例题)
    5.明明的随机数(桶排序经典例题)
    5.明明的随机数(桶排序经典例题)
    5.明明的随机数(桶排序经典例题)
    Algs4-1.2.11根据Date的API实现一个SmartDate类型
    Algs4-1.2.10编写一个类VisualCounter
    Algs4-1.2.9使用Counter统计BinarySearch检查的key个数
    Algs4-1.2.8引用型变量赋值-数组复制
  • 原文地址:https://www.cnblogs.com/xiaobaizzz/p/12302043.html
Copyright © 2020-2023  润新知