[PATCH] HTTP/1.1 response caching upgrade

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Sun, 14 Oct 2012 20:17:22 +1300

On prompting from bug 3670 which outlines how Auth transactions are now
wrongly non-cacheable. I have performed a small audit of the
HttpStateData::cacheableReply() method and this patch contains the result.

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 (on trunk rev.12394):
  * 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.

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.

This should give Squid a major boost to both its caching compliance and
HIT ratios.

The patch is build tested, but not yet run-time tested or HTTP/1.1
compliance tested.

Amos

Received on Sun Oct 14 2012 - 07:17:35 MDT

This archive was generated by hypermail 2.2.0 : Tue Oct 16 2012 - 12:00:06 MDT