Re: 200 Level warnings in revalidation

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