Re: [hybi] Is there a traffic jam?

Greg Wilkins <gregw@webtide.com> Tue, 28 April 2009 02:01 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 A84C03A6B22 for <hybi@core3.amsl.com>; Mon, 27 Apr 2009 19:01:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.547
X-Spam-Level:
X-Spam-Status: No, score=-2.547 tagged_above=-999 required=5 tests=[AWL=0.052, 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 QnVSh+LDtj7x for <hybi@core3.amsl.com>; Mon, 27 Apr 2009 19:01:56 -0700 (PDT)
Received: from mail-gx0-f166.google.com (mail-gx0-f166.google.com [209.85.217.166]) by core3.amsl.com (Postfix) with ESMTP id A4AD43A6856 for <hybi@ietf.org>; Mon, 27 Apr 2009 19:01:56 -0700 (PDT)
Received: by gxk10 with SMTP id 10so613848gxk.13 for <hybi@ietf.org>; Mon, 27 Apr 2009 19:03:17 -0700 (PDT)
Received: by 10.90.82.17 with SMTP id f17mr7829755agb.41.1240884197433; Mon, 27 Apr 2009 19:03:17 -0700 (PDT)
Received: from ?10.10.1.11? (60-242-119-126.tpgi.com.au [60.242.119.126]) by mx.google.com with ESMTPS id 8sm10805035agd.77.2009.04.27.19.03.15 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 27 Apr 2009 19:03:16 -0700 (PDT)
Message-ID: <49F663DF.7030300@webtide.com>
Date: Tue, 28 Apr 2009 12:03:11 +1000
From: Greg Wilkins <gregw@webtide.com>
User-Agent: Thunderbird 2.0.0.21 (X11/20090409)
MIME-Version: 1.0
To: hybi@ietf.org
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> <Pine.LNX.4.62.0904271812110.12381@hixie.dreamhostps.com>
In-Reply-To: <Pine.LNX.4.62.0904271812110.12381@hixie.dreamhostps.com>
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
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: Tue, 28 Apr 2009 02:01:57 -0000

Ian Hickson wrote:
> 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.

Would it be sufficient to allow optional support of complex features.
So a server could implement a either a simple core of websocket or
a richer more complex feature set?

Also, you have argued against additional frame-type that could better
support complex behaviour on the grounds that the base frame types
can carry that complex protocol with assumptions.   If a mime-encapsulating
frame type is not worth a dedicated frame-type byte, then what
kinds of extensions do you see additional frame-type being defined for?




> 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.

Welcome to the wonderful world of web protocols!

> 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.

I do not think this is generally true.

Server that will implement the websocket protocol are more than likely
going to be done by entirely different sets of developers than those
that write the javascript content that is served from them.

More over, the javascript served will probably be from 2, 3 or even
more distinct sets of developers as frameworks, mashups and other
such things will bring together the work of many into a single page.

There is also the likely hood of more and more cross-site support
and websockets will have to support cross site in some way, so a server
may receive connections from code it didn't actually serve.

Furthermore, intermediary proxy's etc. may alter what is sent/received.
Even if the initial proxies/firewalls don't,  I'm sure somebody will
develop some smart websocket aware proxy that does some

So Server components also have to deal wit non-conforming clients
sending back garbage etc. etc.


> 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.

I think the specification should entirely define the wire protocol without
any assumptions about who/what/where is implementing the client or the
server.    If we wait for non-js-in-browser clients before fully specifying
the server side of the protocol, then we have a chicken and the egg problem.


cheers