Methods
E
F
I
N
Constants
HTTP_IF_MODIFIED_SINCE = 'HTTP_IF_MODIFIED_SINCE'.freeze
HTTP_IF_NONE_MATCH = 'HTTP_IF_NONE_MATCH'.freeze
Instance Public methods
etag_matches?(etag)
    # File actionpack/lib/action_dispatch/http/cache.rb, line 25
25:         def etag_matches?(etag)
26:           if_none_match && if_none_match == etag
27:         end
fresh?(response)

Check response freshness (Last-Modified and ETag) against request If-Modified-Since and If-None-Match conditions. If both headers are supplied, both must match, or the request is not considered fresh.

    # File actionpack/lib/action_dispatch/http/cache.rb, line 32
32:         def fresh?(response)
33:           last_modified = if_modified_since
34:           etag          = if_none_match
35: 
36:           return false unless last_modified || etag
37: 
38:           success = true
39:           success &&= not_modified?(response.last_modified) if last_modified
40:           success &&= etag_matches?(response.etag) if etag
41:           success
42:         end
if_modified_since()
    # File actionpack/lib/action_dispatch/http/cache.rb, line 11
11:         def if_modified_since
12:           if since = env[HTTP_IF_MODIFIED_SINCE]
13:             Time.rfc2822(since) rescue nil
14:           end
15:         end
if_none_match()
    # File actionpack/lib/action_dispatch/http/cache.rb, line 17
17:         def if_none_match
18:           env[HTTP_IF_NONE_MATCH]
19:         end
not_modified?(modified_at)
    # File actionpack/lib/action_dispatch/http/cache.rb, line 21
21:         def not_modified?(modified_at)
22:           if_modified_since && modified_at && if_modified_since >= modified_at
23:         end