- From: Jeffrey Mogul <mogul@pa.dec.com>
- Date: Tue, 29 Sep 98 15:29:53 MDT
- To: Chris DiPierro <cdipierr@us.ibm.com>
- Cc: http-wg@hplb.hpl.hp.com
Chris DiPierro <cdipierr@us.ibm.com> writes:
The spec says that all 200 level warnings must be retained after a
successful revalidation.
However, it also says that all end-to-end headers (Warnings are
end-to-end) must be replaced after by the corresponding end-to-end
header in a revalidation.
So if we had a cached copy of an entity that has a 200 level
warning associated with it and when we revalidate, we get a Warning
header w/o the 200 level warning, are we supposed to keep it or
not?
I believe you are referring to section 13.5.3 (Combining Headers),
and this particular passage:
The end-to-end headers stored in the cache entry are used for the
constructed response, except that
. any stored Warning headers with warn-code 1xx (see section
14.46) MUST be deleted from the cache entry and the forwarded
response.
. any stored Warning headers with warn-code 2xx MUST be retained
in the cache entry and the forwarded response.
. any end-to-end headers provided in the 304 or 206 response MUST
replace the corresponding headers from the cache entry.
Unless the cache decides to remove the cache entry, it MUST also
replace the end-to-end headers stored with the cache entry with
corresponding headers received in the incoming response.
In other words, the set of end-to-end headers received in the
incoming response overrides all corresponding end-to-end headers
stored with the cache entry (except for stored Warning headers with
warn-code 1xx, which are deleted even if not overridden).
I guess this might be somewhat confusing. The second exception
in the bulleted list:
. any stored Warning headers with warn-code 2xx MUST be retained
in the cache entry and the forwarded response.
appears to conflict with
Unless the cache decides to remove the cache entry, it MUST also
replace the end-to-end headers stored with the cache entry with
corresponding headers received in the incoming response.
but the obvious resolution is that special treatment for Warning
headers applies to this paragraph, as well as the one above the
list of exceptions. I.e., the paragraph should read:
Unless the cache decides to remove the cache entry, it MUST also
replace the end-to-end headers stored with the cache entry with
corresponding headers received in the incoming response, except
for Warning headers as described immediately above.
-Jeff
Received on Tuesday, 29 September 1998 15:31:44 UTC