• 计算机网络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
  • 相关阅读:
    WebService出错 Maximum message size quota for incoming messages (65536) has been exceeded.已超过传入消息(65536)的最大消息大小配额
    php 获取系统时间
    JavaSctipt 控制网页 前进,后退
    放A片的文件夹的名字
    玩玩独轮车
    3月18日周六骑行三水大旗头村——广东名镇之一
    叫春的猫
    抓紧锻炼身体噢!
    使用Zend Framework中的 Zend_Pdf来创建pdf文档
    虚拟主机示例
  • 原文地址:https://www.cnblogs.com/xiaobaizzz/p/12302043.html
Copyright © 2020-2023  润新知