Re: [hybi] Versioning is a anti-pattern

Julian Reschke <julian.reschke@gmx.de> Mon, 06 September 2010 07:17 UTC

Return-Path: <julian.reschke@gmx.de>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id CF2A23A68A2 for <hybi@core3.amsl.com>; Mon, 6 Sep 2010 00:17:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.977
X-Spam-Level:
X-Spam-Status: No, score=-102.977 tagged_above=-999 required=5 tests=[AWL=-1.867, BAYES_05=-1.11, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gMPlsRQrERzI for <hybi@core3.amsl.com>; Mon, 6 Sep 2010 00:17:24 -0700 (PDT)
Received: from mail.gmx.net (mailout-de.gmx.net [213.165.64.23]) by core3.amsl.com (Postfix) with SMTP id 306183A6885 for <hybi@ietf.org>; Mon, 6 Sep 2010 00:17:23 -0700 (PDT)
Received: (qmail invoked by alias); 06 Sep 2010 07:17:50 -0000
Received: from p508FB4C1.dip.t-dialin.net (EHLO [192.168.178.33]) [80.143.180.193] by mail.gmx.net (mp029) with SMTP; 06 Sep 2010 09:17:50 +0200
X-Authenticated: #1915285
X-Provags-ID: V01U2FsdGVkX1/H6OgDlfjHLLP1BxlXLCO6wXd2PF9QuY3BrgYmjB sbpvs5LoJg6wkZ
Message-ID: <4C849598.4010302@gmx.de>
Date: Mon, 06 Sep 2010 09:17:44 +0200
From: Julian Reschke <julian.reschke@gmx.de>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.8) Gecko/20100802 Lightning/1.0b2 Thunderbird/3.1.2
MIME-Version: 1.0
To: David Orchard <orchard@pacificspirit.com>
References: <20100901224502.0519B3A687C@core3.amsl.com> <AANLkTikP1CF22fL0rBniXmrxEoBAbTNfzP9kyiNA4nbb@mail.gmail.com> <AANLkTi=_1m36ThFZTH_aGE_Unz0KTeexJq_74UGr2j+u@mail.gmail.com> <alpine.DEB.2.00.1009022022090.7470@tvnag.unkk.fr> <AANLkTi=yQyvX_z3NhvNc4dFjfHwTH2edhYM2LukZDfsm@mail.gmail.com> <4C847F06.70903@it.aoyama.ac.jp> <AANLkTik+91Y699oMgdGtWi+DifL=_T9ocaimcV7nHsBS@mail.gmail.com>
In-Reply-To: <AANLkTik+91Y699oMgdGtWi+DifL=_T9ocaimcV7nHsBS@mail.gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Y-GMX-Trusted: 0
Cc: hybi <hybi@ietf.org>
Subject: Re: [hybi] Versioning is a anti-pattern
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 06 Sep 2010 07:17:26 -0000

On 06.09.2010 07:50, David Orchard wrote:
> Martin, you said:
>
>> Yes, indeed. The version number would only be changed if there were some
>> very basic changes in the protocol. The tremendous difficulty isn't so much
>> coming from a fundamental problem with versioning (if there indeed were some
>> very basic protocol changes, there would probably be wide agreement with
>> changing the version number) but from the fact that nobody currently is
>> interested in very basic changes in the HTTP protocol (if you exclude this
>> group :-).
>
> Which is accurate, but I think that is partially because of what I
> mentioned before, that the HTTP version identifier semantics weren't
> defined enough.  If it was "easy" to version HTTP from 1.1 to say 1.2
> with some optional components, then we may have done so.  But because
> HTTP did not do anything like what I mentioned before, such as
> something akin to "Minor versions are guaranteed to be compatible
> changes and any unknown components may be ignored and must not cause a
> fault in a receiver" or somesuch wording, than 1.1 made it very
> difficult to create a version of HTTP that was forwards compatible
> with existing receivers.

"HTTP uses a "<major>.<minor>" numbering scheme to indicate versions of 
the protocol. The protocol versioning policy is intended to allow the 
sender to indicate the format of a message and its capacity for 
understanding further HTTP communication, rather than the features 
obtained via that communication. No change is made to the version number 
for the addition of message components which do not affect communication 
behavior or which only add to extensible field values. The <minor> 
number is incremented when the changes made to the protocol add features 
which do not change the general message parsing algorithm, but which may 
add to the message semantics and imply additional capabilities of the 
sender. The <major> number is incremented when the format of a message 
within the protocol is changed. See RFC 2145 [36] for a fuller 
explanation." -- 
<http://greenbytes.de/tech/webdav/rfc2616.html#rfc.section.3.1>

I think another answer is that we didn't need to, because HTTP/1.1 is 
already extensible enough, thus didn't need any change to the message 
format.

Best regards, Julian