<
Okhttp 中 `max Age`、`max Stale` 和 `min Fresh` 同时使用时的效果
>
上一篇

Okhttp 对 `addinterceptor` 的顺序处理
下一篇

Git 命令 判断 git 仓库类型

OkHttp 中 max-agemax-stalemin-fresh 同时使用时的效果

假设以下缓存策略:

Cache-Control: max-age=3600, max-stale=7200, min-fresh=600

示例场景

  1. 请求发生在缓存生成后的 30 分钟内
    • 缓存的响应仍然在 max-age 时间内(3600 秒),所以客户端会直接使用缓存的响应。
  2. 请求发生在缓存生成后的 1 小时 30 分钟内
    • 缓存的响应已经超过了 max-age 时间(3600 秒),但在 max-stale 时间内(7200 秒),所以客户端仍然可以接受这个过期的响应。
  3. 请求发生在缓存生成后的 2 小时 30 分钟内
    • 缓存的响应已经超过了 max-stale 时间(7200 秒),所以客户端不会使用这个过期的响应,会重新请求服务器获取新的响应。
  4. 请求发生在缓存生成后的 50 分钟内,并且客户端希望响应在未来 10 分钟内仍然有效
    • 缓存的响应在 max-age 时间内(3600 秒),但客户端希望响应在未来 10 分钟内(600 秒)仍然有效。因为 50 分钟 + 10 分钟 = 60 分钟,仍然在 max-age 时间内,所以客户端会直接使用缓存的响应。

总结

Top
Foot