Re: [hybi] Versioning is a anti-pattern
"Martin J. Dürst" <duerst@it.aoyama.ac.jp> Mon, 06 September 2010 05:42 UTC
Return-Path: <duerst@it.aoyama.ac.jp>
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 A8ABA3A67EC for <hybi@core3.amsl.com>; Sun, 5 Sep 2010 22:42:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -98.436
X-Spam-Level:
X-Spam-Status: No, score=-98.436 tagged_above=-999 required=5 tests=[AWL=-1.246, BAYES_50=0.001, HELO_EQ_JP=1.244, HOST_EQ_JP=1.265, MIME_8BIT_HEADER=0.3, 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 A3i35BCFmSn1 for <hybi@core3.amsl.com>; Sun, 5 Sep 2010 22:42:37 -0700 (PDT)
Received: from scintmta01.scbb.aoyama.ac.jp (scintmta01.scbb.aoyama.ac.jp [133.2.253.33]) by core3.amsl.com (Postfix) with ESMTP id 8F3563A6885 for <hybi@ietf.org>; Sun, 5 Sep 2010 22:42:13 -0700 (PDT)
Received: from scmse01.scbb.aoyama.ac.jp ([133.2.253.231]) by scintmta01.scbb.aoyama.ac.jp (secret/secret) with SMTP id o865fmoN032233 for <hybi@ietf.org>; Mon, 6 Sep 2010 14:41:48 +0900
Received: from (unknown [133.2.206.133]) by scmse01.scbb.aoyama.ac.jp with smtp id 3255_23bf_714cf592_b979_11df_b1e6_001d096c566a; Mon, 06 Sep 2010 14:41:48 +0900
Received: from [IPv6:::1] ([133.2.210.1]:43587) by itmail.it.aoyama.ac.jp with [XMail 1.22 ESMTP Server] id <S143D1C5> for <hybi@ietf.org> from <duerst@it.aoyama.ac.jp>; Mon, 6 Sep 2010 14:41:47 +0900
Message-ID: <4C847F06.70903@it.aoyama.ac.jp>
Date: Mon, 06 Sep 2010 14:41:26 +0900
From: "\"Martin J. Dürst\"" <duerst@it.aoyama.ac.jp>
Organization: Aoyama Gakuin University
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.9) Gecko/20100722 Eudora/3.0.4
MIME-Version: 1.0
To: Adam Barth <ietf@adambarth.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>
In-Reply-To: <AANLkTi=yQyvX_z3NhvNc4dFjfHwTH2edhYM2LukZDfsm@mail.gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 8bit
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 05:42:39 -0000
Hello Adam, On 2010/09/04 11:06, Adam Barth wrote: > On Thu, Sep 2, 2010 at 11:25 AM, Daniel Stenberg<daniel@haxx.se> wrote: >> On Wed, 1 Sep 2010, Adam Barth wrote: >>> Please don't add versioning to the protocol. Versioning is a anti-pattern >>> for the web. >> >> We've seen this mentioned before on this list but without a lot of >> clarifications and I'm curious: >> >> What are the other transfer protocols for which versioning have failed so >> significantly that versioning in protocols can be called an anti-pattern? > > Versioning has been a big pain point for TLS. Here's a presentation > that outlines some recent implementation experience: > > http://www.ietf.org/proceedings/65/slides/tls-6.pdf > > I encourage you to read through the presentation (it's pretty short). This is indeed discouraging. TLS server side implementers seem to be rather challenged. For a security-related protocol, that's rather bad indeed. I very much hope WS implementers can do a better job. >> Or isn't it so that it truly is an anti-pattern for the *web* (with the >> emphasis added on the web word) and we're not really doing web here, we're >> discussing a transfer protocol. > > It's a continual annoyance in dealing with the IETF to have to deal > with this "browsers don't matter" attitude. Of course browsers do matter. But servers do matter, too. > In he case of this > working group, we're working on a protocol expressly for use by > browsers, which would seem to indicate that browser implementation > experience is relevant. Of course the browser implementation experience is highly relevant! But that doesn't mean that necessarily the browser implementation experience with HTML (or TLS) is relevant to pre-RFC WS implementations. The way I understand it, there are three things that could potentially be versioned: - Handshake - Framing - Extensions Of these, the handshake is versioned almost by definition (though not with an explicit number), given that a change of the handshake means different header field names (I guess there's very wide agreement that it would be extremely dumb to keep the same header field names with different semantics). The framing is where versioning has been proposed, but it is very important to note that this is only for when the framing actually changes. As soon as the framing is 'baked', I think there's wide agreement that there is no need for versioning. Frankly speaking, I'd also prefer to have *some* kind of indication of whether the first few bits of a frame are a length or a frame type or what, even if that doesn't have to be called a version number. For extensions, as far as I understand, there is no proposal for versioning in the sense that there is no plan to bundle certain extensions under a certain version number. (there may be some base protocol features (maybe multiplexing could be one of these, we don't know yet) that are implemented by using the extension mechanism, but that's a separate matter). There is of course the possibility for each extension (as well as for each subprotocol) to do versioning as they please (which hopefully will mean as little as possible. So overall, it seems to be that the browser experience of "be careful, versioning, it may not work as well as you might think" is very much heeded. Also, versioning has been requested for framing, and in particular for the first few bits/bytes of framing. Squeezing information tightly into bytes creates a different context with respect to versioning than a textual protocol with lots of redundancy such as HTML. >> HTTP is the primary "web protocol" and AFAIK, its versioning is usually not >> considered a failure. > > The version number in HTTP hasn't been change in a very long time. I > suspect we'd encounter tremendous difficulty if we tried to change it > today. 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 :-). In a similar way, it seems the big majority of contributors on this list agree that the version number (or the absence of a version number) should not change in a very, very long time *once the WS protocol, and in particular the framing part, is baked*. In some ways, this reminds me of the AtomPub WG. It kept the version number at 0.3 while working on the spec. Everybody knew in advance that the final version would be version 1.0. That way, it tried to make sure that it had one shot at a clean spec, and reduced feature creep and early lock-in. I don't know how successful that were. Regards, Martin. -- #-# Martin J. Dürst, Professor, Aoyama Gakuin University #-# http://www.sw.it.aoyama.ac.jp mailto:duerst@it.aoyama.ac.jp
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Adam Barth
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… John Tamplin
- [hybi] I-D Action:draft-ietf-hybi-thewebsocketpro… Internet-Drafts
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Ian Fette (イアンフェッティ)
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Greg Wilkins
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Greg Wilkins
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Adam Barth
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… John Tamplin
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Joe Hildebrand
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… John Tamplin
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… John Tamplin
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Adam Barth
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Greg Wilkins
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Greg Wilkins
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… John Tamplin
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Roy T. Fielding
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Ian Fette (イアンフェッティ)
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Gabriel Montenegro
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Willy Tarreau
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Willy Tarreau
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Willy Tarreau
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Willy Tarreau
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Takeshi Yoshino
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Joe Hildebrand
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Willy Tarreau
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Hector Santos
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Hector Santos
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Simon Pieters
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Alexey Melnikov
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… James Graham
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Julian Reschke
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Olli Pettay
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Ian Fette (イアンフェッティ)
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Ian Fette (イアンフェッティ)
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Ian Fette (イアンフェッティ)
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Gabriel Montenegro
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… John Tamplin
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… John Tamplin
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Olli Pettay
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Julian Reschke
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Scott Ferguson
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… John Tamplin
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Ian Fette (イアンフェッティ)
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Ian Fette (イアンフェッティ)
- Re: [hybi] Versioning is a anti-pattern Daniel Stenberg
- Re: [hybi] Versioning is a anti-pattern Tim Bray
- Re: [hybi] Versioning is a anti-pattern John Tamplin
- Re: [hybi] Versioning is a anti-pattern Dave Cridland
- Re: [hybi] Versioning is a anti-pattern Hector Santos
- [hybi] List of (mostly) editorial changes for dra… Patrick McManus
- Re: [hybi] List of (mostly) editorial changes for… John Tamplin
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Willy Tarreau
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Dave Cridland
- Re: [hybi] List of (mostly) editorial changes for… Patrick McManus
- [hybi] Web Socket IP Authentication Hector Santos
- Re: [hybi] Versioning is a anti-pattern David Orchard
- Re: [hybi] Versioning is a anti-pattern Greg Wilkins
- Re: [hybi] Versioning is a anti-pattern James Graham
- Re: [hybi] Versioning is a anti-pattern John Tamplin
- Re: [hybi] Versioning is a anti-pattern Julian Reschke
- Re: [hybi] Web Socket IP Authentication Dave Cridland
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Simon Pieters
- Re: [hybi] Web Socket IP Authentication Hector Santos
- Re: [hybi] Versioning is a anti-pattern Patrick McManus
- Re: [hybi] Versioning is a anti-pattern John Tamplin
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Willy Tarreau
- Re: [hybi] Versioning is a anti-pattern Scott Ferguson
- Re: [hybi] Versioning is a anti-pattern John Tamplin
- Re: [hybi] Versioning is a anti-pattern Scott Ferguson
- Re: [hybi] Versioning is a anti-pattern John Tamplin
- Re: [hybi] Versioning is a anti-pattern Adam Barth
- Re: [hybi] Versioning is a anti-pattern Martin J. Dürst
- Re: [hybi] Versioning is a anti-pattern David Orchard
- Re: [hybi] Versioning is a anti-pattern Willy Tarreau
- Re: [hybi] Versioning is a anti-pattern Julian Reschke
- Re: [hybi] Versioning is a anti-pattern Adam Barth
- Re: [hybi] Versioning is a anti-pattern Greg Wilkins
- Re: [hybi] List of (mostly) editorial changes for… Greg Wilkins
- Re: [hybi] List of (mostly) editorial changes for… Patrick McManus
- Re: [hybi] List of (mostly) editorial changes for… Greg Wilkins
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Simon Pieters
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Ian Fette (イアンフェッティ)
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Brian McKelvey
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Brian
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Simon Pieters
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… John Tamplin
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Ian Fette (イアンフェッティ)
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Anne van Kesteren
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Ian Fette (イアンフェッティ)
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… John Tamplin
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… S Moonesamy
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Greg Wilkins
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Willy Tarreau
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Ian Fette (イアンフェッティ)
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Anne van Kesteren
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Ian Fette (イアンフェッティ)
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Simon Pieters
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Simon Pieters
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Ian Fette (イアンフェッティ)
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… S Moonesamy
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… Simon Pieters
- Re: [hybi] I-D Action:draft-ietf-hybi-thewebsocke… S Moonesamy
- Re: [hybi] Versioning is a anti-pattern Julian Reschke