Re: [hybi] Proposed way forward for WebSockets

John Tamplin <jat@google.com> Tue, 27 July 2010 06:40 UTC

Return-Path: <jat@google.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 CF5FF3A68D7 for <hybi@core3.amsl.com>; Mon, 26 Jul 2010 23:40:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.976
X-Spam-Level:
X-Spam-Status: No, score=-101.976 tagged_above=-999 required=5 tests=[AWL=-0.000, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, 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 dEg78r2-AcOX for <hybi@core3.amsl.com>; Mon, 26 Jul 2010 23:40:41 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.35]) by core3.amsl.com (Postfix) with ESMTP id 59CF63A686B for <hybi@ietf.org>; Mon, 26 Jul 2010 23:40:41 -0700 (PDT)
Received: from hpaq12.eem.corp.google.com (hpaq12.eem.corp.google.com [172.25.149.12]) by smtp-out.google.com with ESMTP id o6R6f2Ac021023 for <hybi@ietf.org>; Mon, 26 Jul 2010 23:41:02 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1280212862; bh=NyqANAUOouwSplBUVmk4i1xY4IQ=; h=MIME-Version:In-Reply-To:References:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=KOuETEXajafIoioKdmaj73nuqtIVfi5IVDMYZd/CZXukl8QX5lEjIFoMl4hOVywxI 7kXoN2Zb9y83sjao9LF/A==
DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=mime-version:in-reply-to:references:from:date:message-id: subject:to:cc:content-type:x-system-of-record; b=pFWuM1cJlhszVTNDdLT2dk3rMyh2kYa/88l0k0luvZz9rjQDKMUaLwxTzMQ60dvlB Kbl9Pl///VXPWefXAjE4g==
Received: from gxk4 (gxk4.prod.google.com [10.202.11.4]) by hpaq12.eem.corp.google.com with ESMTP id o6R6f0Ff020647 for <hybi@ietf.org>; Mon, 26 Jul 2010 23:41:01 -0700
Received: by gxk4 with SMTP id 4so1253700gxk.28 for <hybi@ietf.org>; Mon, 26 Jul 2010 23:41:00 -0700 (PDT)
Received: by 10.151.69.17 with SMTP id w17mr10212171ybk.288.1280212860201; Mon, 26 Jul 2010 23:41:00 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.151.60.3 with HTTP; Mon, 26 Jul 2010 23:40:40 -0700 (PDT)
In-Reply-To: <op.vghnjpex64w2qv@annevk-t60>
References: <ECF0E97F-1DA2-4662-BA48-F68B65AA8179@apple.com> <4C4D66AF.9030905@opera.com> <Pine.LNX.4.64.1007270030120.24444@ps20323.dreamhostps.com> <AANLkTi=fx=Yfm_pe9-pdCc=5sKRP=dNfDEBYCKNHFOmH@mail.gmail.com> <op.vghnjpex64w2qv@annevk-t60>
From: John Tamplin <jat@google.com>
Date: Tue, 27 Jul 2010 02:40:40 -0400
Message-ID: <AANLkTik5AB=UPJ47z8tEnVygJodPVAmppeXUymMBz+9n@mail.gmail.com>
To: Anne van Kesteren <annevk@opera.com>
Content-Type: multipart/alternative; boundary="000e0cd33064c4ea52048c58c87f"
X-System-Of-Record: true
Cc: hybi@ietf.org
Subject: Re: [hybi] Proposed way forward for WebSockets
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, 27 Jul 2010 06:40:44 -0000

On Tue, Jul 27, 2010 at 2:13 AM, Anne van Kesteren <annevk@opera.com> wrote:

> On Tue, 27 Jul 2010 06:56:27 +0200, Greg Wilkins <gregw@webtide.com>
> wrote:
>
>> I would add 4: to support  the deployment of future extended versions of
>> the protocol.
>>
>> Thus having a mechanism for versions and feature negotiation is key in a
>> 1.0
>>
>
> Feature negotiation is there, by means of new headers.


If that is the intention, it would be good to state that in the protocol,
especially since an earlier version specifically outlawed additional headers
and there is confusion over the interpretation of the current version's
stance on additional headers.  Additionally, I think there needs to be room
for expansion of frame types (which is currently there).

Breaking backwards compatibility so that you need to support two or more
> versions forever seems like a bad idea.


The alternative is simply breaking old implementations if there is no
versioning and you find you need to make incompatible changes.  Including
versioning now is small insurance against such a requirement.

I think it is worth considering keep-alives for the initial version -- the
alternative, if implemented at the application level, is a mess of
incompatible implementations that can't be pooled or limited by the browser
(such as on a phone that needs to curtail network activity to conserve
battery) without interfering with legitimate traffic, since the browser
can't identify it.

Another one that I think is impractical to expect JS implementations of is
compression.  What would demonstrate sufficient need for compression support
if it is not reasonable to expect the compression to be implemented in JS -
would demonstrations of improvement of real-world performance of real-world
apps across a compressed WebSocket be sufficient?

-- 
John A. Tamplin
Software Engineer (GWT), Google