Re: [hybi] Extensibility mechanisms?

Ian Hickson <ian@hixie.ch> Mon, 19 April 2010 08:05 UTC

Return-Path: <ian@hixie.ch>
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 C37BE3A6810 for <hybi@core3.amsl.com>; Mon, 19 Apr 2010 01:05:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.559
X-Spam-Level:
X-Spam-Status: No, score=-0.559 tagged_above=-999 required=5 tests=[AWL=-0.875, BAYES_50=0.001, SARE_MILLIONSOF=0.315]
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 fcBvyWstUq1m for <hybi@core3.amsl.com>; Mon, 19 Apr 2010 01:05:01 -0700 (PDT)
Received: from looneymail-a2.g.dreamhost.com (caibbdcaaaaf.dreamhost.com [208.113.200.5]) by core3.amsl.com (Postfix) with ESMTP id A431A3A67D6 for <hybi@ietf.org>; Mon, 19 Apr 2010 01:05:01 -0700 (PDT)
Received: from ps20323.dreamhostps.com (ps20323.dreamhost.com [69.163.222.251]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by looneymail-a2.g.dreamhost.com (Postfix) with ESMTP id A7C2B16D3DD; Mon, 19 Apr 2010 01:04:39 -0700 (PDT)
Date: Mon, 19 Apr 2010 08:04:38 +0000
From: Ian Hickson <ian@hixie.ch>
To: Julian Reschke <julian.reschke@gmx.de>
In-Reply-To: <4BCC0A07.9030003@gmx.de>
Message-ID: <Pine.LNX.4.64.1004190753510.23507@ps20323.dreamhostps.com>
References: <h2w5c902b9e1004152345j992b815bz5f8d38f06a19181a@mail.gmail.com> <Pine.LNX.4.64.1004160701250.751@ps20323.dreamhostps.com> <4BC860FD.8080007@webtide.com> <Pine.LNX.4.64.1004161952530.751@ps20323.dreamhostps.com> <4BC96A0D.4080904@webtide.com> <Pine.LNX.4.64.1004180246380.751@ps20323.dreamhostps.com> <4BCAB2C1.2000404@webtide.com> <B9DC25B0-CD21-44E7-BD9B-06D0C9440933@apple.com> <4BCB7829.9010204@caucho.com> <Pine.LNX.4.64.1004182349240.751@ps20323.dreamhostps.com> <4BCC0A07.9030003@gmx.de>
Content-Language: en-GB-hixie
Content-Style-Type: text/css
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset="US-ASCII"
Cc: Hybi <hybi@ietf.org>
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: Mon, 19 Apr 2010 08:05:02 -0000

On Mon, 19 Apr 2010, Julian Reschke wrote:
> On 19.04.2010 02:05, Ian Hickson wrote:
> > On Sun, 18 Apr 2010, Scott Ferguson wrote:
> > > 
> > > The client and server APIs must be suitable for amateur programmers, 
> > > and the wire protocol must support those simple APIs, but it's _not_ 
> > > important that the wire protocol be implementable by someone who 
> > > can't understand buffering, chunking or encoding. After all, 
> > > HTTP/1.1 requires those capabilities.
> > 
> > IMHO, HTTP is a disaster in terms of getting multiple server-side 
> > implementations. Over three quarters of the market is dominated by two 
> > vendors, and the third largest vendor on a per-server basis is a 
> > company
> 
> Sounds like the browser market, btw.

The browser market is even worse. It's incredibly difficult to enter the 
market. That's one of the reasons I've been working on making HTML5 as 
accurate a description of what a competitive browser needs to implement as 
possible -- to make it easier to enter that market. Unfortunately there's 
little more we can do -- we can make the specs more accurate, which makes 
it less expensive to create a Web browser, but we can't fundamentally make 
the browser market simpler, because of all the legacy content.

With Web Sockets, there's no legacy yet. We have a more or less fresh 
start. So we can ensure that what we do is simple enough that we don't 
create this problem.


> > that runs a proprietary implementation and derives significant benefit 
> > from being able to do so. There are some custom servers, e.g. in some 
> > set
> 
> Where's the problem with that?

Your quoting is ambiguous here, but assuming you are referring to the 
third implementation being a proprietary implementation, it's not a 
problem. What I meant was that since that company benefitted from 
developing their own dedicated custom server, rather than using one of the 
three off-the-shelf solutions with more than 5% of the market (by domain), 
it might be the case that other organisations would benefit from the same 
ability, but find themselves unable to actually write their own server 
since it is such a complicated task. If this conclusion is correct, then 
it would lead to a further conclusion that we should probably ensure doing 
the same with Web Sockets is easier, so that one does not have to become a 
large company before one can reap the benefit.


> > top boxes or other network devices too small to run one of the few 
> > common servers, and many of those are highly incomplete or buggy 
> > implementations.
> 
> There are also many servers running, for instances, one of the many 
> Servlet/J2EE implementations. These may not be significant compared to 
> the absolute number of servers out there, but how is that relevant???

I'm not sure what you're asking.


> > I would not consider HTTP a model solution here. On the contrary. Its 
> > complexity has led to a rather stagnant monoculture which is an 
> > attacker's dream. A single exploit can affect millions of servers. ...
> 
> Yes. What does that have to do with the protocol, btw?

A simple protocol is far more likely to end up with more implementations 
and thus a far more heterogeneous environment.

-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'