方法
- 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" |
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]) |
属性
[R] | cache_control |
实例公共方法
date() 链接
来源: 显示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/http/cache.rb, line 85 def date if date_header = get_header(DATE) Time.httpdate(date_header) end end
date=(utc_time) 链接
来源: 显示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/http/cache.rb, line 95 def date=(utc_time) set_header DATE, utc_time.httpdate end
date?() 链接
来源: 显示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/http/cache.rb, line 91 def date? has_header? DATE end
etag=(weak_validators) 链接
此方法在响应中设置一个弱 ETag 验证器,以便浏览器和代理可以缓存响应,并以 ETag 为键。在随后的请求中,If-None-Match
标头设置为缓存的 ETag。如果它与当前 ETag 匹配,我们可以返回一个没有主体的 304 未修改
响应,让浏览器或代理知道他们的缓存是最新的。在请求时间和网络带宽方面节省了大量开支。
弱 ETag 被认为是语义上等效的,但不是字节对字节完全相同的。这非常适合浏览器缓存 HTML 页面,我们不关心精确的相等性,只关心用户正在查看的内容。
强 ETag 被认为是字节对字节完全相同的。它们允许浏览器或代理缓存支持 Range
请求,这对分页浏览 PDF 文件或快速浏览视频很有用。有些 CDN 只支持强 ETag,并且会完全忽略弱 ETag。
弱 ETag 是我们几乎总是需要的,所以它们是默认的。查看
strong_etag= 提供一个强 ETag 验证器。
来源: 显示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/http/cache.rb, line 117 def etag=(weak_validators) self.weak_etag = weak_validators end
etag?() 链接
来源: 显示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/http/cache.rb, line 129 def etag?; etag; end
last_modified() 链接
来源: 显示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/http/cache.rb, line 71 def last_modified if last = get_header(LAST_MODIFIED) Time.httpdate(last) end end
last_modified=(utc_time) 链接
来源: 显示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/http/cache.rb, line 81 def last_modified=(utc_time) set_header LAST_MODIFIED, utc_time.httpdate end
last_modified?() 链接
来源: 显示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/http/cache.rb, line 77 def last_modified? has_header? LAST_MODIFIED end
strong_etag=(strong_validators) 链接
来源: 显示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/http/cache.rb, line 125 def strong_etag=(strong_validators) set_header "ETag", generate_strong_etag(strong_validators) end
strong_etag?() 链接
如果设置了 ETag,并且它不是弱验证器(没有以 W/
开头),则为真。
来源: 显示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/http/cache.rb, line 138 def strong_etag? etag? && !weak_etag? end
weak_etag=(weak_validators) 链接
来源: 显示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/http/cache.rb, line 121 def weak_etag=(weak_validators) set_header "ETag", generate_weak_etag(weak_validators) end
weak_etag?() 链接
如果设置了 ETag,并且它是一个弱验证器(以 W/
开头),则为真。
来源: 显示 | 在 GitHub 上
# File actionpack/lib/action_dispatch/http/cache.rb, line 132 def weak_etag? etag? && etag.start_with?('W/"') end