Re: Confusion about Age: accuracy vs. safety

Roy T. Fielding:
[...]
>My summary is that the spec of sections 13.2.3 and 14.6 is not only
>wrong (produces the wrong Age value on every request), but also has
>the probability of causing catastrophic network failure for those
>networks which are becoming increasingly dependent on cache
>efficiency.

I too think that Jeff goes way to far in never trying to underestimate
the age, and that there could be problems because of this.

My main concern is that with the `every proxy cache must add an Age
header' interpretation, first-hand responses with max-age=0 or some
other small max-age value may have been marked as aged and gotten a
warning:stale header by the time they have passed a few 1.1 proxy
caches.  This is extremely bad because

  a) the next proxy might retry the request to get a fresh response,
     and might even go into an infinite retry-loop when it keeps
     getting responses with Age: 1.

  b) the user will get a big *warning:stale* message from the browser
     while in fact nothing is wrong (the response is firsthand, so it
     is as fresh as it can be).  Such warnings might drown out the
     actual warnings when responses *are* stale, might cause lots of
     reload-pressing, might cause service authors to never use
     max-age=0, etc.

There may be ways to carefully code around both problems, but all in
all, I think that Jeff's interpretation leads to a very brittle
system, in which `obvious' mechanisms added for robustness could
easily cause catastrophic failure when deployed in a chain of proxies.

I exchanged e-mail with Jeff and Jim about this before the 06 draft
was finished, and this led to Jeff writing the current ambiguous
sentence, which I interpreted at the time as Roy does now: `must add
an Age header only when serving a response from cache memory'.

My proposal to Jeff at the time was something like the following Age
header rule:

 - MUST add Age when serving from cache memory
 - MAY add Age when relaying a response from a 1.0 proxy
 - MUST NOT add Age when relaying a response from a 1.1 or higher proxy

> ...Roy T. Fielding

Koen.

Received on Thursday, 22 August 1996 05:43:32 UTC