CacheControl 为配置与 Cache-Control 头相关的设置提供支持,并在许多地方被接受为参数:
虽然 RFC 7234 描述了 Cache-Control 响应头的所有可能的指令,但 CacheControl 类型采用了面向使用情况的方法,重点关注常见的情况:
// 缓存 1 小时:Cache-Control: max-age=3600CacheControl ccCacheOneHour = CacheControl.maxAge(1, TimeUnit.HOURS);// 防止缓存:Cache-Control: no-storeCacheControl ccNoStore = CacheControl.noStore();// 在公共和私有(public and private)缓存中缓存 10 天// 公共缓存不应转换响应// 生成的响应头为:Cache-Control: max-age=864000, public, no-transformCacheControl 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 秒。
