- From: Jeffrey Mogul <Jeff.Mogul@hp.com>
- Date: Mon, 30 Sep 2002 17:39:35 -0700
- To: Alex Rousskov <rousskov@measurement-factory.com>
- cc: ietf-http-wg@w3.org
Thanks for a clarification! It looks like the answer depends on whether "it is interesting" to add this Warning to a miss. That is, whether there is any "use" in attaching such a Warning. You think it is not useful because cache heuristics do not apply to misses. I think one could consider it being useful because the Warning could be about upstream cache's heuristic, not about the cache adding a Warning. See below. You asked "Did the author(s) intend for the [specified] MUST to apply to HIT responses only?". My answer was intended to convey what the *current* specification requires and why, not whether it might be a good idea to expand the specification. Also, note that the terms "upstream" and "downstream", as defined in RFC2616, probably mean something different than how you are using them. I think by "upstream" you mean "inbound" (i.e., closer to the origin server). > I can't see any reason to Warn anyone on a miss that creates > a new cache entry with a heuristic expiration lifetime The only reason I can think of is the "garbage in, compliance out" principle: the proxy should improve the "quality" of responses it forwards. Imagine that there is a non-HTTP/1.1 cache upstream that cached the response for more than 24 hours. Imagine that the requesting client agent supports Warnings but does not analyze response age. If a compliant proxy adds a Warning (that the upstream cache should have added, but did not!), the user will get a useful Warning. The above scenario is quite artificial, of course. I am not sure whether it is good enough to say that the MUST in question should apply to misses. Remember that RFC2119, "Key words for use in RFCs to Indicate Requirement Levels", says Imperatives of the type defined in this memo must be used with care and sparingly. In particular, they MUST only be used where it is actually required for interoperation or to limit behavior which has potential for causing harm (e.g., limiting retransmisssions) For example, they must not be used to try to impose a particular method on implementors where the method is not required for interoperability. You're right that the scenario seems like a weak reason to add another MUST or SHOULD to the spec. I'd be inclined to fix this problem by asking why a client that is capable of dealing with Warnings is not "analyzing the response age" (which seems like a basic requirement of the spec.) -Jeff
Received on Monday, 30 September 2002 20:39:42 UTC