]> git.ipfire.org Git - thirdparty/squid.git/commit
HTTP/1.1: Cache-Control compliance upgrade
authorAmos Jeffries <squid3@treenet.co.nz>
Fri, 19 Oct 2012 09:17:33 +0000 (03:17 -0600)
committerAmos Jeffries <squid3@treenet.co.nz>
Fri, 19 Oct 2012 09:17:33 +0000 (03:17 -0600)
commit2b59002cd51e06d8140936c414a7be7e70fcaf66
treea336eaf573d7573b6c6ec39d87c26bb6f62e7406
parent8f6ae1a5244ca886c1ad4c154055336706f63f3a
HTTP/1.1: Cache-Control compliance upgrade

trunk rev 11361 converted Cache-Control header from using a single mask
bitmap (shared by request and response) to separate CC header objects in
the request response. This conversion contained several regressions like
the one bug 3670 reports.

This patch:
 * documents HttpStateData::cacheableReply() clarifying the overall
   method action and what each individual check it doing.
 * resolves several visible regressions, including bug 3670.
 * extends the caching to handle the "no-cache" controls as per HTTP/1.1
   (MAY store, but MUST revalidate before use).
 * extends the caching for several lesser known cases of "MAY store"
   exemptions handling authenticated transactions.
 * removes an old hack handling Pragme:no-cache (undefined in HTTP/1.1)

One side effect of now caching transactions utilizing "no-cache" is that
hacks around Pragma:no-cache are reduced to only having any effect when
Cache-Control is absent. Reducing their performance cost. And now require
--enable-http-violations is built in since HTTP/1.1 states that
response Pragma are not defined and thus SHOULD be ignored.
src/http.cc
src/http.h