Re: HTTP version number

>  No conversion occurs within the same major version number.
>  In fact, that is the main distinguisher between the major
>  and minor version changes.  Any 1.x proxy can safely
>  forward any 1.x request or response without changing
>  anything except the Request-Line/Status-Line (it always
>  sends its own native version) and the Connection,
>  Forwarded, and Host header fields.

I think that *is* overspecifying future protocol versions...

PEP, for example, is designed as a minor-version upgrade to 1.x -- this only  
works because it defines that a PEP-savvy proxy does "extensive" rewriting of  
an arbitrary number of headers at each step. More to the point, PEP  
compatibility depends on savvy agents (say, 1.2) looking askance at 1.1 or  
below responses to see if they contain PEP headers the earlier agent would  
have had to act on but didn't.

Here, there has got to be minor-version upgrading across single-links, and I  
think the language above is too absolutist...

Rohit

Begin forwarded message:

To: Koen Holtman <koen@win.tue.nl>
Cc: http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
Subject: Re: HTTP version number
In-Reply-To: Your message of "Sun, 03 Mar 1996 23:41:27 +0100."  
<199603032241.XAA05373@wsooti04.win.tue.nl>
Date: Mon, 04 Mar 1996 08:21:18 -0800
From: "Roy T. Fielding" <fielding@avron.ics.uci.edu>
Sender: http-wg-request@cuckoo.hpl.hp.com

> Roy T. Fielding:
>>Koen writes:
>>> draft-kristol-http-state-mgmt-00 is not orthogonal to the HTTP version
>>> number: see section 10.  Servers need the version number to know
>>> whether they should send an old Netscape format Set-Cookie header or a
>>> new HTTP/1.1 Set-Cookie header.
>>
>>This won't work.  For example
>>
>>     1.0 UA ---------> 1.1 Proxy ---------> 1.0 Origin Server
>>
>>will result in a 1.1 cookie being sent to a 1.0 user agent.
>
> Isn't the 1.1 proxy required to convert the 1.1 response from the
> server to a 1.0 response before sending it to the user agent?  This
> conversion would presumably also convert the 1.1 cookie in the
> Set-Cookie header to a 1.0 cookie.  At least this is how I read
> Section 3.1 of the draft 1.1 spec.

Good question, but the answer is no (this used to be clear in the draft,
but I deleted the original wording because somebody said it
was overspecifying future versions -- *sigh*).

No conversion occurs within the same major version number.
In fact, that is the main distinguisher between the major and
minor version changes.  Any 1.x proxy can safely forward any
1.x request or response without changing anything except
the Request-Line/Status-Line (it always sends its own native version)
and the Connection, Forwarded, and Host header fields.

Visualizing that ....

              1.0                  1.1
    1.0 UA ---------> 1.1 Proxy ---------> 1.0 Origin Server
           <---------           <---------
              1.1                  1.0

Likewise,

              1.0                  1.1
    1.0 UA ---------> 1.1 Proxy ---------> 1.1 Origin Server
           <---------           <---------
              1.1                  1.1

              1.1                  1.1
    1.1 UA ---------> 1.1 Proxy ---------> 1.0 Origin Server
           <---------           <---------
              1.1                  1.0

              1.1                  1.0
    1.1 UA ---------> 1.0 Proxy ---------> 1.1 Origin Server
           <---------           <---------
              1.0                  1.1

>>The only features of HTTP that can depend on a minor version number
>>change are those that are interpreted by neighbors in the communication.
>
> I'm not sure what you means by this; I hope you don't mean "when
> passing on a 1.1 response to a 1.0 client, a proxy may convert the 1.1
> response to a 1.0 response by rewriting the version number in the
> response status line".

Ummm, not exactly.  All messages within the same major version
(e.g., HTTP/1.x) must be sent with the sending application's native
version supported.  So, a HTTP/1.1 proxy will always forward a received
HTTP/1.0 message with a new version of HTTP/1.1 the Status/Request-Line.

I'd say more, but its time to register.

 ...Roy T. Fielding
    Department of Information & Computer Science    (fielding@ics.uci.edu)
    University of California, Irvine, CA 92717-3425    fax:+1(714)824-4056
    <http://www.ics.uci.edu/~fielding/

Received on Friday, 8 March 1996 14:53:28 UTC