Niklas Edmundsson wrote:
At first glance, doing this I think will break RFC2616 compliance, and if it does break RFC compliance then I think it should not be defaultbehaviour. However if it does solve a real problem for admins, then havinga directive allowing the admin to enable this behaviour does make sense.Why would it break RFC compliance?
Because when clients say "maxage=0" it means "please consider all URLs as stale and revalidate them", and the server is obliged to honor this.
This request will never benefit of the headers being saved to disk, and the headers returned to the client should of course be those that resulted of the revalidation of the object. The only difference is that they aren't saved to disk too.
If this happens you introduce a subtle bug - when the URL becomes stale on the frontend, it will remain stale to the end of days, because the entry on disk is never refreshed with new headers to show the content is fresh.
Yup. CacheIgnoreCacheControl is one of those, we use it on the offloaders that only serves large files that we know doesn't need the RFC behaviour.
I was thinking of a directive like CacheOrigin [on|off], meaning that *this* cache isn't a cache at all, but rather an origin server that just happens to fetch data via HTTP from some backend if the data isn't fresh in the cache.
Regards, Graham --
smime.p7s
Description: S/MIME Cryptographic Signature
