On Wed, 19 Oct 2011 05:15:22 +0800, Kaiwang Chen wrote:
> After a few investigation, I found the statement from
> http://www.squid-cache.org/Doc/config/ecap_service/:
> vectoring_point =
> reqmod_precache|reqmod_postcache|respmod_precache|respmod_postcache
> This specifies at which point of transaction
> processing the
> eCAP service should be activated. *_postcache
> vectoring points
> are not yet supported.
>
> Also in http://wiki.squid-cache.org/Features/ICAP, similiar statement
> was found:
> Pre-cache REQMOD and RESPMOD vectoring points are supported
>
> Notice 6.1 Vectoring points from rfc5703 suggests 4 classess of
> different adaption. I guess the above statemets is class 1, client
> requests "on its way into the cache", and class 3, responses "on its
> way into the cache"? A positive answer might be really bad news for
> me, since I am looking for class 4, client-specific responses coming
> from the surrogate.. Would anyone please make me clear?
Sort of.
In Squid there are several mangling interfaces which the request goes
through (URL rewrite, ESI etc). The ICAP/eCAP adaptation is the first
layer. This means:
* "pre-cache REQMOD" is request received from client before any other
local alterations are done. Some minor normalisation is performed during
parsing but that is all. The adaptation producing a reply will prevent
any other modifications being done. The reply gets sent straight back to
the client (and not cached).
* "pre-cache RESPMOD" is responses coming from the server. Again with
only minor parser normalizations. Caching here is determined by the
output HTTP headers of the adaptation step. So you can at the adaptation
step add client-specific things and strip away the cacheability of the
response.
To only change the HTTP headers, there are some tricks you can do with
the "must-revalidate" and/or "proxy-revalidate" cache control. These
controls causes the surrogate to contact the origin web server on every
request. The origin can send back new headers on a 304 not-modified
response. Meaning the headers get changed per-response, but the cached
body gets sent only when actually changed. Retaining most of the
bandwidth and performance benefits of caching.
NP: this trick with 304 is only possible for headers which do not
update headers with details about the particular body object. ie you can
use it for altering Cookie values per-request, but not for changing the
apparent Content-Encoding from gzip to deflate. For things affecting the
body you use the normal 200 response and send the updated body as well.
HTH
Amos
Received on Tue Oct 18 2011 - 22:48:08 MDT
This archive was generated by hypermail 2.2.0 : Wed Oct 19 2011 - 12:00:06 MDT