httphttp-headersrfc2616

'Most conservative' conversion to GMT?


Section 19.3 "Tolerant Applications" of the HTTP 1.1 RFC (2616) says on the subject of parsing dates from HTTP client applications:

If an HTTP header incorrectly carries a date value with a time zone other than GMT, it MUST be converted into GMT using the most conservative possible conversion.

Two questions:

  1. Does this mean that the server MUST convert a non-GMT date value to GMT? Or does it mean that if (optionally) it chooses to convert a non-GMT date value to GMT (rather than rejecting it) then it MUST use the most conservative possible conversion?

  2. What is meant by "the most conservative possible conversion"?

Edit Although this is now an old question, I'm still interested in knowing the answer if anyone has it.


Solution

  • Does this mean that the server MUST convert a non-GMT date value to GMT? Or does it mean that if (optionally) it chooses to convert a non-GMT date value to GMT (rather than rejecting it) then it MUST use the most conservative possible conversion?

    This is really something that's more specific to the field in question than something that's applied generally. There is a working group draft that would obselete RFC 2616 that has this to say about conversion in caches:

    What is meant by "the most conservative possible conversion"?

    Under this context, it doesn't seem to mean anything specifically aside from when faced with 2 outcomes, pick the most "conservative" date based on the context of the date.

    Given 2 dates that was fuzzy parsed, in the context of a Last-modified header, the most conservative would be the "later" one. But in the context of a Expires header, the earlier of the 2 is more conservative. Anything requiring a significant amount of guessing should just return an error response.