- From: Jeffrey Mogul <mogul@pa.dec.com>
- Date: Tue, 04 Mar 97 10:20:27 PST
- To: Dave Kristol <dmk@research.bell-labs.com>
- Cc: http-wg@cuckoo.hpl.hp.com
Dave Kristol writes: Jeffrey Mogul <mogul@pa.dec.com> wrote: > [...] > A client should never receive a response whose version number is > higher than the one it implements, because a server is not supposed to > send a response whose version is higher than the one in the request, > and a client "MUST NOT send a version for which it is not at least > conditionally compliant." > [...] I *really* hope you meant to say "whose *major* version number...". Otherwise you're saying an HTTP/1.1 server should send an HTTP/1.0 response to an HTTP/1.0 client, which is how this issue got started in the first place, and which I don't think you meant. Yes, that was sloppiness on my part. I should have written A client should never receive a response whose *major* version number is higher than the one it implements, because a server is not supposed to send a response whose *major* version is higher than the one in the request, and a client "MUST NOT send a version for which it is not at least conditionally compliant." To make the story complete, I should also have referred to this paragraph from draft-ietf-http-versions-00: An implementation of HTTP/x.b sending a message to a recipient whose version is known to be HTTP/x.a, a < b, MUST NOT depend on the recipient understanding a header not defined in the specification for HTTP/x.a. For example, HTTP/1.0 clients cannot be expected to understand chunked encodings, and so an HTTP/1.1 server must never send ``Transfer-Encoding: chunked'' in response to an HTTP/1.0 request. In other words, it's necessary (and sufficient) that both of these conditions hold true: (1) the response's major version is no higher than the client's major version. (2) the response can be understood by a recipient implementing the client's minor version. What is still left unspecified is whether a server can assume that a client whose request is labelled with HTTP/w.x understands HTTP/y.z responses, for y < w and all defined values of z. This seems to be another one of those theological debates, and I'm not going to get dragged into it now. BTW, as the person who instigated the original flap, let me say I'm content with Jeff's (et al.) draft-ietf-http-versions-00.txt. Thanks. -Jeff
Received on Tuesday, 4 March 1997 10:30:46 UTC