- From: Shel Kaphan <sjk@amazon.com>
- Date: Fri, 20 Dec 1996 15:33:20 -0800 (PST)
- To: Dave Kristol <dmk@research.bell-labs.com>
- Cc: http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
Dave Kristol writes: ... > Case 1 (return HTTP/1.0 to HTTP/1.0 request): > The protocol version in the response MUST be the lesser of HTTP/1.1 and > the protocol version in the request. The headers in the response MUST > be consistent with the protocol version in the response. > > Case 2 (return HTTP/1.1 to HTTP/1.0 request): > The protocol version in the response MUST be the greater of HTTP/1.1 and > the protocol version in the request. The headers in the response MUST > be consistent with the protocol version in the request. > > We need to agree on one case or the other and (I believe) to choose words > to add to the draft. > > Dave Kristol > > There are multiple possible interpretations of "The headers in the response MUST be consistent with the protocol version in the (response|request)". Interpretation A: the headers in the response must be _defined_ in the protocol version in the (response|request), or Interpretation B: the headers in the response must _not be inconsistent_ with the protocol version in the (response|request). The way in which the major/minor version scheme works is involved with this. It's always supposed to be possible for a 1.n client to receive 1.m responses from a 1.m server and behave reasonably according to the capabilities of version min(1.n,1.m). If m<=n, the headers will describe how a version 1.m client should behave, and the 1.n version should be able to do that. If m>n, the response should still have a reasonable interpretation in 1.n. If this can't work, the major/minor version system isn't going to work. If we believe interpretation A above, then a HTTP 1.0 proxy anywhere between a HTTP 1.1 client and a HTTP 1.1 server would prevent the server from ever being able to pass any 1.1-only headers through the proxy to the client in either case (1) or (2). Furthermore this would require proxies to remove 1.1 headers when responding to 1.0 clients. So, this is pretty bad. If we believe interpretation A above, then, since 1.1 is supposed to be backward compatible with 1.0, if headers defined in 1.1 are left uninterpreted (and this is the crux of the major/minor version scheme), then it is always OK to return a normal 1.1 response to a 1.0 request. This seems to suggest it makes sense to return a 1.1 version number as well. --Shel
Received on Friday, 20 December 1996 15:34:55 UTC