If no private nor public were defined in the cache-control, e.g.

 Cache-Control: max-age=31461276

What is the expected behavior?


It seem it tells browser that the cache expires after 1 year, 31461276 seconds means 1 year.

More details in this post: EXPIRES VS. MAX-AGE

  • I know what is expires and max-age, but just don't know what are the different if I missed the public – Yoga Nov 23 '12 at 18:12
  • @Yoga I guess it behaves as public unless you have HTTP authentication. – Eduard Florinescu Nov 23 '12 at 18:22
  • This made sense. – Yoga Nov 24 '12 at 6:12

See http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3:

The max-age directive on a response implies that the response is cacheable
(i.e., "public") unless some other, more restrictive cache directive is 
also present.

It's conceivable (likely?) that there are proxies in the wild which break this but since the only failure mode could be treating a public resource as private the consequences should be minimal beyond a modest performance hit. You'll have far more problems with proxies which do things like cache resources far beyond your specified max-age.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.