• HTTP 协议缓存


    http 缓存分为客户端缓存和服务端缓存

    1. 客户端缓存

    客户端缓存指的是浏览器缓存, 浏览器缓存是最快的缓存, 因为它直接从本地获取(但有可能需要发送一个请求), 它的优势是可以减少网络流量, 加快请求速度

    2. 服务器缓存

    服务器缓存指的是反向代理服务器或 cdn 缓存, 他的作用是用于减轻实际的 web server 的压力.

    缓存生效都是通过 header 来控制的

    1. Expires

    如果 repsonse 中带有 Expires=date, 则表示这个 response 可以由 浏览器/CDN 保存至 date 日期, 在到达 date 日期之前, 都可以直接提供给请求方, 对于浏览器缓存来说, 则可以不必发请求, 对于反向代理服务器来说, 则可以不用请求原始 server

    2. Cache-Control

    Cache-Control 的值有很多, 最常用的是 max-age, 如果 response 带有 max-age, 则表示从现在起到 max-age 之前, 这个 repsonse 都可以作为缓存使用

    Server 的 Cache-Control
    1. no-store, 提示客户端应该删除这个缓存
    2. no-cache, 提示客户端在重新验证这个缓存之前不应该使用
    3. max-age, 表示缓存的新鲜时间, 在此时间内可以不发送 http 请求去验证缓存而直接使用它, 如果 max-age=0. 则表示要求不要缓存文档
    4. s-maxage, 功能与 max-age 相同, 但只对共享缓存生效(CDN, 反向代理)

    Client 的 Cache-Control
    1. max-stale, 可以使用过期缓存
    2. max-stale=s, 在 s 秒内, 缓存可以过期
    3. min-fresh=s, 在 s 秒内, 缓存不能过期
    4. max=age=s, 缓存的 age 必须小于 s 秒
    5. no-cache, 除非资源进行再验证, 否则不接受缓存
    6. no-store, 表示反向代理服务器不应该缓存这个请求的 response
    7. only-if-cached, 只想要已缓存的数据, 否则返回 504

    如果 Cache-Control 的 max-age 与 Expires 同时存在, 则 max-age 优先

    3. Last-Modified/If-Modified-Since

    如果 response 带有 Last-Modified, 则 request 在 Expires 跟 Cache-Control 的缓存过期后, 可以使用将 Last-Modified 的时间带到 request header If-Modified-Since 里, 去 server 端校验缓存是否改变, 如果  server 回复 304, 则可以继续使用本地缓存

    4. ETag/If-None-Match

    如果 response  带有 ETag, 则 request 在 Expires 跟 Cache-Control 的缓存过期后, 可以将 Etag 的值带到 request header If-None-Match, 如果  server 回复 304, 则可以继续使用本地缓存

    5. ETag & Last-Modified

    如果 response 同时包含 ETag 与 Last-Modified, 则 request 需要同时发送 If-Modified-Since 和 If-None-Match, 并且 server 需要两者同时校验通过才返回 304.

  • 相关阅读:
    sql 2012中获取表的信息,包含字段的描述
    C#如何创建泛型类T的实例
    C# 之 DataReader 和 DataSet 的区别
    C#进阶系列——WebApi 接口参数不再困惑:传参详解
    IIS事件查看器_WebServer事件查看器_帮助查看IIS-Web服务器事件执行日志
    SQL分页查询的几种方式
    freeRTOS中文实用教程3--中断管理之延迟中断处理
    freeRTOS中文实用教程2--队列
    freeRTOS中文实用教程1--任务
    UML和模式应用5:细化阶段(5)---系统顺序图
  • 原文地址:https://www.cnblogs.com/zemliu/p/4263048.html
Copyright © 2020-2023  润新知