- From: Koen Holtman <koen@win.tue.nl>
- Date: Fri, 18 Aug 1995 12:04:16 +0200 (MET DST)
- To: Jeffrey Mogul <mogul@pa.dec.com>
- Cc: http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
Jeffrey Mogul: >Time for a Principle: > Principle #1 of caching: > Caches should never introduce undetectable incorrectness. > Correctness always takes precedence over performance. > As discussed earlier on www-talk, if a sufficient number of service authors keeps putting Expires: <yesterday> or Pragma: no-cache headers in responses for frivolous reasons, a web cache administrator may want to (selectivelty) `tune' the cache to ignore these headers (even if this means that the cache does not conform to http 1.x anymore). Such a `tuned' cache would introduce incorrectness, so a corollary of the above principle is: If a cache does not honor requests _not_ to cache as in http 1.x, there should be a way for _origin servers_ to detect it, so that they can refuse to serve dynamic documents through these caches (or embed big warning messages in these documents). So we could introduce yet another pragma: Pragma: min-age=<delta-seconds> `Tuned' caches, either in user agents or in proxies, should add this header to the _request_ headers. Semantics of the header: - if it is absent: the cache promises to always honor the http 1.x response headers related to cache control (Expires and Pragma in 1.0 and 1.1). - if it is present: the cache does only guarantee to honor the http 1.x response headers related to cache control (Expires and Pragma in 1.0 and 1.1) _after_ <delta-seconds> seconds after the end of the http connection. In the time before that, the cache may choose to serve the cached entiry without prior validation with the origin server. Maybe a special case, Pragma: min-age=session is also needed to allow user agents to express that an entity is cached (without ever sending IMS or head requests to the origin server) until the end of the session (where the exact meaning of `session' is left undefined). Adding Pragma: min-age to a http 1.x spec would make `tuning' legal under http 1.x. I think any http spec should strongly discourage tuning. Tuning is with us now: if it has disappeared in, say, 2 years, the http x.y spec written in 1997 could make Pragma: min-age an obsolete header. Koen.
Received on Friday, 18 August 1995 03:08:45 UTC