Re: Internet Draft http-versions-00

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