CacheControl 为配置与 Cache-Control 头相关的设置提供支持,并在许多地方被接受为参数:

    虽然 RFC 7234 描述了 Cache-Control 响应头的所有可能的指令,但 CacheControl 类型采用了面向使用情况的方法,重点关注常见的情况:

    1. // 缓存 1 小时:Cache-Control: max-age=3600
    2. CacheControl ccCacheOneHour = CacheControl.maxAge(1, TimeUnit.HOURS);
    3. // 防止缓存:Cache-Control: no-store
    4. CacheControl ccNoStore = CacheControl.noStore();
    5. // 在公共和私有(public and private)缓存中缓存 10 天
    6. // 公共缓存不应转换响应
    7. // 生成的响应头为:Cache-Control: max-age=864000, public, no-transform
    8. CacheControl ccCustom = CacheControl.maxAge(10, TimeUnit.DAYS).noTransform().cachePublic();

    WebContentGenerator 还接受一个更简单的 cachePeriod 属性(以秒为单位定义),其作用如下:

    • 一个 -1 的值不会生成一个 Cache-Control 响应头。
    • 一个 0 值可以通过使用 Cache-Control: no-store指令来防止缓存。
    • n > 0的值通过使用 Cache-Control: max-age=n指令将给定的响应缓存 N 秒。