- From: Jeffrey Mogul <mogul@pa.dec.com>
- Date: Mon, 24 Jun 96 21:44:31 MDT
- To: Paul Hethmon <phethmon@utk.edu>
- Cc: http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
I'm in the midst of a 1.1 implementation and came across something
in draft 5 which seems to lead to ambiguity. In Sections 14.25 (If-Match)
and 14.26 (If-None-Match), it seems there could be a conflict if both
headers are present in a request.
If a client sent something like:
If-Match: "abcde"
If-None-Match: "abcde"
Which should the server honor? It doesn't seem likely for both to be
present, but it's not explicitly forbidden or resolved either.
It also seems the same circumstances could apply to "If-Modified-Since"
and "If-Unmodified-Since" if the client sends a time for the latter
which is earlier than the former [...]
I think both of the scenarios are not likely without an error on
the client side, but it seems the spec should arbritrate the conflict
in some fashion.
The closest I could find would be to return a 400 response. Is this
what the draft intends?
We could either go through the spec and find all of the situations
where an apparent conflict exists, and declare a specific action
that the recipient must take.
Or we could simply state (near the front) that as a general
principle, the action of a recipient that receives an internally
contradictory message is "undefined", and the implementor has
no obligation to do anything in particular (but should not
crash.) As you've observed, this would probably be the result
of a bogus client implementation.
I'd prefer the latter, since it doesn't require us to consider
all of the nonsensical permutations ahead of time.
-Jeff
Received on Monday, 24 June 1996 22:06:28 UTC