Re: [hybi] Is there a traffic jam?

Ian Hickson <ian@hixie.ch> Mon, 27 April 2009 18:16 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 EBA303A6F31 for <hybi@core3.amsl.com>; Mon, 27 Apr 2009 11:16:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.139
X-Spam-Level:
X-Spam-Status: No, score=-3.139 tagged_above=-999 required=5 tests=[AWL=-0.540, 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 jPMuyA4yr5UC for <hybi@core3.amsl.com>; Mon, 27 Apr 2009 11:16:23 -0700 (PDT)
Received: from looneymail-a3.g.dreamhost.com (caibbdcaaaaf.dreamhost.com [208.113.200.5]) by core3.amsl.com (Postfix) with ESMTP id BDD6D3A6B13 for <hybi@ietf.org>; Mon, 27 Apr 2009 11:16:05 -0700 (PDT)
Received: from hixie.dreamhostps.com (hixie.dreamhost.com [208.113.210.27]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by looneymail-a3.g.dreamhost.com (Postfix) with ESMTP id AF07627B7D; Mon, 27 Apr 2009 11:17:26 -0700 (PDT)
Date: Mon, 27 Apr 2009 18:17:26 +0000
From: Ian Hickson <ian@hixie.ch>
To: Jamie Lokier <jamie@shareable.org>
In-Reply-To: <20090427150429.GE4885@shareable.org>
Message-ID: <Pine.LNX.4.62.0904271812110.12381@hixie.dreamhostps.com>
References: <1cb725390904131712k292a4860pbd078bb251d3855b@mail.gmail.com> <Pine.LNX.4.62.0904140031040.10339@hixie.dreamhostps.com> <1cb725390904131752u5842c039wb3d75602c479fa45@mail.gmail.com> <Pine.LNX.4.62.0904140053050.10339@hixie.dreamhostps.com> <1cb725390904131814o6040a8d3t637069a344d561bd@mail.gmail.com> <Pine.LNX.4.62.0904240546100.10370@hixie.dreamhostps.com> <E51D5B15BFDEFD448F90BDD17D41CFF105AD1ADC@AHQEX1.andrew.com> <Pine.LNX.4.62.0904240805380.12381@hixie.dreamhostps.com> <E51D5B15BFDEFD448F90BDD17D41CFF105AD1E13@AHQEX1.andrew.com> <Pine.LNX.4.62.0904270033570.12381@hixie.dreamhostps.com> <20090427150429.GE4885@shareable.org>
Content-Language: en-GB-hixie
Content-Style-Type: text/css
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset="US-ASCII"
Cc: hybi@ietf.org
Subject: Re: [hybi] Is there a traffic jam?
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, 27 Apr 2009 18:16:24 -0000

On Mon, 27 Apr 2009, Jamie Lokier wrote:
> > 
> > Since making the protocol complex arbitrarily is bad language design, 
> > that just leaves us in the position of doing our best to make it as 
> > simple as we possibly can.
> 
> I think WebSockets is in the unusual position that client browser 
> implementations won't be implemented often, but servers will be and so 
> will any Javascript layer that people need to put on top.

Agreed.


> I guess that's why I push for more complexity in the client browser 
> implementation, in exchange for less complexity at the Javascript level 
> when you can't avoid putting it somewhere, for a broad class of 
> applications.

I'm happy to add more complexity (so long as it is justified) to the 
client implementation, with the caveat that it must not also increase the 
complexity of the server-side implementations.

The client component has to deal with any server, including non-conforming 
servers sending back garbage, future servers that support an extended 
version of the protocol, etc. Server components only have to deal with the 
output possible from their own scripts driving a conforming implementation 
of the API. We can leverage that asymmetry.

This is why currently the spec for the client side defines the entire 
protocol (including binary frames which might be sent by servers in the 
future), but the spec for the server side only defines the rules required 
for handling content sent by the current client API.

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