方法
- D
- E
- L
- S
- W
常量
| DATE | = | "Date" |
| DEFAULT_CACHE_CONTROL | = | "max-age=0, private, must-revalidate" |
| IMMUTABLE | = | "immutable" |
| LAST_MODIFIED | = | "Last-Modified" |
| MUST_REVALIDATE | = | "must-revalidate" |
| MUST_UNDERSTAND | = | "must-understand" |
| NO_CACHE | = | "no-cache" |
| NO_STORE | = | "no-store" |
| PRIVATE | = | "private" |
| PUBLIC | = | "public" |
| SPECIAL_KEYS | = | Set.new(%w[extras no-store no-cache max-age public private must-revalidate must-understand]) |
Attributes
| [R] | cache_control |
实例公共方法
date() 链接
date=(utc_time) 链接
date?() 链接
etag=(weak_validators) 链接
此方法为响应设置一个弱 ETag 验证器,以便浏览器和代理可以缓存响应,并以 ETag 作为键。在后续请求中,If-None-Match 标头将被设置为缓存的 ETag。如果它与当前 ETag 匹配,我们可以返回一个304 Not Modified 响应,不带正文,告知浏览器或代理它们的缓存是最新的。这将大大节省请求时间和网络带宽。
弱 ETag 被认为是语义等价但并非逐字节相同的。这对于 HTML 页面的浏览器缓存来说非常理想,因为我们不关心精确相等,只关心用户正在查看的内容。
强 ETag 被认为是逐字节相同的。它们允许浏览器或代理缓存支持Range 请求,这对于分页浏览 PDF 文件或在视频中进行拖动非常有用。一些 CDN 只支持强 ETag,会完全忽略弱 ETag。
弱 ETag 是我们几乎总是需要的,所以它们是默认设置。查看
strong_etag= 来提供强 ETag 验证器。
etag?() 链接
last_modified() 链接
last_modified=(utc_time) 链接
last_modified?() 链接
strong_etag=(strong_validators) 链接
strong_etag?() 链接
如果设置了 ETag 且它不是弱验证器(前面没有W/),则返回 true。