- From: Ingrid Melve <Ingrid.Melve@uninett.no>
- Date: Wed, 20 Nov 1996 19:19:57 +0100
- To: Jeffrey Mogul <mogul@pa.dec.com>
- Cc: http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
> Jeffrey Mogul:
>
> Since we have not seen any criticism of our latest proposal, we would
> like to interpret this as lack of criticism rather than lack of
> interest, because we already have evidence that several large customers
> are eager to deploy implementations of our proposal.
I have some questions to the draft as it stands.
The concept of hit-metering is reasonably clear (as cachemaster I get phone
calls asking for hitcounts and refuse to give them out), but the reason for
usage-limiting is less clear to me. Either I implement hitmetering, in which
case the webserver gets its counts; or I do not, in which case I ignore the
usage-limiting.
My question is: why bother with usage-limiting ?
(and implementing it in a caching mesh with multiple co-operating caches on
each level in a "hierarchy" will be a pain). The purpose of bounding
inaccuracy in a count is not achieved by adding usage-limiting, as the primary
inaccuracy will be added by ill-behaving caches, users' inimitable inaccurate
ways (check once per session, always check, never check), servers/network
failure and so on (including all those that do hitmetering but do not honour
the usage-limiting). The only useful thing is that it does limit the number
of times a "well-behaved" cache server hands out the same ad. Is the
complexity of usage-limiting worth it?
To illustrate the mesh problem: If I am a cache that gets handed 2 usages
through my first parent and 4 through my second parent, do I have to report
back through the parent who gave me the usage-limit or can I freely chose to
report back through my third parent (who has not connected to the origin
server before and is likely to report 4 out of zero and 2 out of zero or
generally confuse the origin server)? If I have to report through the
appropriate parent, this requires me to store where I got the document from;
and it heavily influences traffic patterns, robustness and the redundancy of
my mesh.
<<
3.3 Negotiation of hit-metering and usage-limiting
An origin server that wants to collect hit counts for a resource, by
simply forcing all requests to bypass any proxy caches, would respond
to requests on the resource with "Cache-control: proxy-revalidate".
(An origin server wishing to prevent HTTP/1.0 proxies from improperly
caching the response could also send both "Expires: <now>", to
prevent such caching, and "Cache-control: max-age=NNNN", to allow
newer proxies to cache the response).
>>
In reading the HTTP/1.1 spec, I had the understanding that must-revalidate and
proxy-revalidate as defined in 14.9 only requires a cache to revalidate if the
response is stale, not every time a request is made (unless there is an
Authorization field). Please correct me if I am wrong.
> draft-ietf-http-v11-spec-07.txt:
> When the must-revalidate directive is present in a response received
> by a cache, that cache MUST NOT use the entry after it becomes stale
> to respond to a subsequent request without first revalidating it with
> the origin server. (I.e., the cache must do an end- to-end
> revalidation every time, if, based solely on the origin server's
> Expires or max-age value, the cached response is stale.)
> [..]
> The proxy-revalidate directive has the same meaning as the must-
> revalidate directive, except that it does not apply to non-shared
> user agent caches.
If the proxy handing out a "Cache-control: proxy-revalidate" also is expected
to modify staleness parameters like "Cache-control: max-age=0" this should be
stated. Are caches allowed to change max-age ??
More questions to come.
Ingrid
--
Ingrid.Melve@uninett.no MIME, PGP and PEM email encouraged
UNINETT, Postboks 6883 Elgeseter, N-7002 Trondheim, Norway
Oj, der telte han meg. Der telte han meg en gang til! For en tøffing!
Received on Wednesday, 20 November 1996 10:29:39 UTC