- From: <mogul@pa.dec.com>
- Date: Mon, 19 Jul 99 11:02:13 -0700
- To: http-wg@hplb.hpl.hp.com
"Nottingham, Mark (Australia)" <mark_nottingham@exchange.au.ml.com> writes
14.18 says that the Date header "represents the date and time at
which the message was originated, having the same semantics as
orig-date in RFC 822. [...] The HTTP-date sent in a Date header
SHOULD NOT represent a date and time subsequent to the generation
of the message."
Is the term 'message' used here as it is defined in 1.3? The
reference to 822 seems to indicate it is bound to the entity
generation date, not the message generation date.
Also to support this,
* 13.5.1 implies that Date is a end-to-end header, and SHOULD NOT
be changed by a cache (although it isn't specifically forbidden in
13.5.2).
* 13.2.3 calculates entity age based on the Date header; if Date
were modified after entity generation, this would be invalid.
Ouch. The text from 14.18 probably should have said "end-to-end
message", since it does seem to be ambiguous (although one might
believe that the word "originated" implies "origin server",
this is clearly open to misinterpretation).
There is also text in 13.2.3 saying:
HTTP/1.1 requires origin servers to send a Date header, if possible,
with every response, giving the time at which the response was
generated (see section 14.18). We use the term "date_value" to denote
the value of the Date header, in a form appropriate for arithmetic
operations.
I think the lack of clarity may reflect the assumption that
all responses carry a Date from the origin server, and so
we just assumed that proxies wouldn't be adding them except
when specifically required by 14.18.
I've noticed that some Web caches will change the response's Date
header to reflect the time that they generate the message. Based on
the above, this seems to be incorrect. Others will use the original
Date, but not update the header upon validation (as in 13.5.3).
Is this correct? What's the proper behaviour here?
It's hard to define "proper behaviour" for HTTP/1.0 caches,
since the HTTP/1.1 spec doesn't formally apply to them, and
the HTTP/1.0 spec wasn't very detailed in this area. HTTP/1.1
compliant proxies, based on 13.5.1, SHOULD NOT modify Date
headers (i.e., not without a very good reason, and I can't
think of any right now). And 13.5.3 clearly says that
HTTP/1.1-compliant proxies MUST update the Date of a stored
cache entry upon validation.
So if the "some Web caches" you refer to are claiming to
be HTTP/1.1 implementations, these are in violation of
the spec. Otherwise, we're stuck with the history of HTTP/1.0.
-Jeff
Received on Monday, 19 July 1999 13:07:21 UTC