Re: [hybi] Extensibility mechanisms?

Greg Wilkins <gregw@webtide.com> Fri, 16 April 2010 15:40 UTC

Return-Path: <gregw@webtide.com>
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 D6D503A6977 for <hybi@core3.amsl.com>; Fri, 16 Apr 2010 08:40:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.516
X-Spam-Level:
X-Spam-Status: No, score=-1.516 tagged_above=-999 required=5 tests=[AWL=1.083, BAYES_00=-2.599]
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 eNRu7YdZYhNd for <hybi@core3.amsl.com>; Fri, 16 Apr 2010 08:40:44 -0700 (PDT)
Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.153]) by core3.amsl.com (Postfix) with ESMTP id 3CA3428C19E for <hybi@ietf.org>; Fri, 16 Apr 2010 08:39:48 -0700 (PDT)
Received: by fg-out-1718.google.com with SMTP id e12so341361fga.13 for <hybi@ietf.org>; Fri, 16 Apr 2010 08:39:37 -0700 (PDT)
Received: by 10.223.8.67 with SMTP id g3mr758966fag.107.1271432377313; Fri, 16 Apr 2010 08:39:37 -0700 (PDT)
Received: from [192.168.0.100] (host116-234-static.43-88-b.business.telecomitalia.it [88.43.234.116]) by mx.google.com with ESMTPS id h2sm4115474fkh.55.2010.04.16.08.39.36 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 16 Apr 2010 08:39:36 -0700 (PDT)
Message-ID: <4BC884B5.2060101@webtide.com>
Date: Fri, 16 Apr 2010 17:39:33 +0200
From: Greg Wilkins <gregw@webtide.com>
User-Agent: Thunderbird 2.0.0.24 (X11/20100411)
MIME-Version: 1.0
To: Hybi <hybi@ietf.org>
References: <h2w5c902b9e1004152345j992b815bz5f8d38f06a19181a@mail.gmail.com>
In-Reply-To: <h2w5c902b9e1004152345j992b815bz5f8d38f06a19181a@mail.gmail.com>
X-Enigmail-Version: 0.95.7
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Subject: Re: [hybi] Extensibility mechanisms?
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: Fri, 16 Apr 2010 15:40:44 -0000

All,

the issue that I have with the current subprotocol field allowed
in the handshake is that it is a) singled valued and b) exposed
in the application API.

So we have to assume that applications and frameworks are going
to invent all sorts of subprotocols and put all sorts
of values into this field... probably frequently for usages
that have nothing to do with sub protocols.

So if a browser, server and/or intermediary wish to negotiate
other extensions (eg for compression, multiplexing, etc. etc.),
then the protocol field is effectively unavailable for that
purpose.

Note that I don't think this is a bad thing.  I think it is
good that the application is able to effectively send arbitrary
meta data along with a handshake (I can imagine B64 encoded json
and/or XML being sent).   I think the protocol field is great
for that purpose (even if calling it "protocol" is probably
not exactly right).

We just need another field, so that entities below the
level of the API can negotiate and apply extensions.
This field needs to be multi valued, so that multiple
extensions can be applied.  However, I expect that some
extensions will be mutually incompatible.

cheers