- From: Mark Nottingham <mnot@mnot.net>
- Date: Sat, 10 Feb 2007 16:41:04 +1100
- To: "ietf-http-wg@w3.org Group" <ietf-http-wg@w3.org>
10.3.5 says: [[[ If the conditional GET used a strong cache validator (see section 13.3.3), the response SHOULD NOT include other entity-headers. Otherwise (i.e., the conditional GET used a weak validator), the response MUST NOT include other entity-headers; this prevents inconsistencies between cached entity-bodies and updated headers. ]]] That applies to the responses; it doesn't specify the behaviour of the cache when it receives such responses. it goes on to say [[[ If a cache uses a received 304 response to update a cache entry, the cache MUST update the entry to reflect any new field values given in the response. ]]] and 13.5.3 goes on [[[ The end-to-end headers stored in the cache entry are used for the constructed response, except that [...] - 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, except for Warning headers as described immediately above. If a header field- name in the incoming response matches more than one header in the cache entry, all such old headers MUST be replaced. 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). ]]] My strict reading of this is that the intent was to discourage updating entity headers with 304 responses, but if it were to happen, to make sure that it was done correctly (i.e., all together). However, an implementer has interpreted the stated intent to mean that a cache should not allow entity headers to be updated by 304s. See: <http://issues.apache.org/bugzilla/show_bug.cgi?id=39647>. There's a certain logic to both positions. Does anyone recall what the original intent was, and do we need a clarification here? -- Mark Nottingham http://www.mnot.net/
Received on Saturday, 10 February 2007 05:41:21 UTC