Re: [hybi] workability (or otherwise) of HTTP upgrade

Zhong Yu <zhong.j.yu@gmail.com> Fri, 10 December 2010 00:50 UTC

Return-Path: <zhong.j.yu@gmail.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 BB8EA28C11B for <hybi@core3.amsl.com>; Thu, 9 Dec 2010 16:50:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.059
X-Spam-Level:
X-Spam-Status: No, score=-3.059 tagged_above=-999 required=5 tests=[AWL=-0.060, BAYES_00=-2.599, J_CHICKENPOX_37=0.6, RCVD_IN_DNSWL_LOW=-1]
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 91-ULUSK4dUL for <hybi@core3.amsl.com>; Thu, 9 Dec 2010 16:50:34 -0800 (PST)
Received: from mail-ey0-f171.google.com (mail-ey0-f171.google.com [209.85.215.171]) by core3.amsl.com (Postfix) with ESMTP id A78B528B797 for <hybi@ietf.org>; Thu, 9 Dec 2010 16:50:33 -0800 (PST)
Received: by eyg5 with SMTP id 5so2545414eyg.16 for <hybi@ietf.org>; Thu, 09 Dec 2010 16:52:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=M8abFdRLde25JpeP7Ihw4bTHDOXw+6mgg2Bq2msusJ4=; b=YpPV9k/AsiKUKB1ixMn7OSTINxrVeLO7cPL0PNzXPtCgImhbGWYIDgqWBbTDbZn/8n V3gNDjg80HJ1Vp6F++HEY6aJMO+c+dszlXmPMmRfOg7ZvPve035QkJj0hX7PCt5fM7hP 5IbQzhbq2HLwEenzHpku+l8RfiQrcvJ1Mu5jg=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=AauEI6otEKGo/XDSgDHolImfCcmMr6ZSSwE9va1YfsmTmZ4OMYUp5/nGPHiPtWq9s+ UwsmcNIWk2qoOKGO3xAZND89Ry2fBYz3xnmBCOaw3FVuH2nU+Rdp3Qgru2DjWYhUIyB8 +Ke03nPKFG+pGxKUgKEj7tswqsuFB+LDjtwCw=
MIME-Version: 1.0
Received: by 10.213.17.16 with SMTP id q16mr8469eba.62.1291942321902; Thu, 09 Dec 2010 16:52:01 -0800 (PST)
Received: by 10.213.16.142 with HTTP; Thu, 9 Dec 2010 16:52:01 -0800 (PST)
In-Reply-To: <AANLkTimg774w-JVExm4YQJzuBv3gaJZOLMo5OymDsMiE@mail.gmail.com>
References: <BB947F6D-15AA-455D-B830-5E12C80C1ACD@mnot.net> <81870DB1-B177-4253-8233-52C4168BE99D@apple.com> <F4D1B715-3606-4E9A-BFB2-8B7BC11BE331@mnot.net> <57D4B885-B1D8-482F-8747-6460C0FFF166@apple.com> <37A00E8D-B55C-49AD-A85C-A299C80FFF17@mnot.net> <4F2580A7-79C2-4B0A-BCE5-7FB6D9AA0ED7@apple.com> <BB31C4AB95A70042A256109D461991260583956C@XCH117CNC.rim.net> <EA41A6C7-971C-4EC8-AA6F-96363B7FDC4C@gmail.com> <73E53F19-E0E7-4ADB-B765-ABAF0B4A6736@mnot.net> <r2f0g6d7bj770kg0db5ptr027ninmckns8@hive.bjoern.hoehrmann.de> <20C2FBB9-901F-4235-AF23-EC8262585905@mnot.net> <1291905941.2315.2113.camel@ds9.ducksong.com> <4D011146.3080906@caucho.com> <AANLkTi=CKU8H5A2f7rSGZ9h5mrp=NZW0yLB9O6=MDW5i@mail.gmail.com> <AANLkTimg774w-JVExm4YQJzuBv3gaJZOLMo5OymDsMiE@mail.gmail.com>
Date: Thu, 09 Dec 2010 18:52:01 -0600
Message-ID: <AANLkTik5ce7VkZrYW=Yp9ST0T1hmAfXYWXqoqfgtsdPh@mail.gmail.com>
From: Zhong Yu <zhong.j.yu@gmail.com>
To: John Tamplin <jat@google.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: hybi <hybi@ietf.org>
Subject: Re: [hybi] workability (or otherwise) of HTTP upgrade
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, 10 Dec 2010 00:50:37 -0000

On Thu, Dec 9, 2010 at 5:46 PM, John Tamplin <jat@google.com> wrote:
> On Thu, Dec 9, 2010 at 2:42 PM, Zhong Yu <zhong.j.yu@gmail.com> wrote:
>>
>> On Thu, Dec 9, 2010 at 11:26 AM, Scott Ferguson <ferg@caucho.com> wrote:
>> > When the draft used GET+Upgrade, servers could reuse things like the
>> > HTTP
>> > authentication, cookie headers, etc., and reuse the existing protocol
>> > stack
>>
>> I believe HTTP cookies shouldn't be included in WS, and I'll make that
>> case in time.
>>
>> http://lcamtuf.blogspot.com/2010/10/http-cookies-or-how-not-to-design.html
>> HTTP cookie is a mess, we don't want to introduce that mess to WS. And
>> even worse, if WS interacts with cookies too, it will add yet another
>> dimension of  complexity to the existing mess. HTTP is connection-less
>> in spirit, WS is connection-ful and stateful in nature, some benefits
>> of cookies to HTTP don't apply to WS. If an app needs to transmit HTTP
>> cookies to WS app, it's easy to do without any help from WS protocol.
>> If we must have a persistent tag for different WS connections from
>> same user, we can introduce a much simpler and cleaner mechanism. But
>> say no to cookies.
>
> The app can't send HTTP-only cookies, since it has no access to them.  One

The *app* has access to everything that server allows it to. The
client side code is all generated by server anyway, server can bundle
any data to the client code.

> of the big problems with cookies in HTTP is that you send them on every
> request so they can take up a sizeable percentage of the bandwidth of the
> request, but in WebSockets that isn't a problem.

I think that's the least of cookies' problems.

> Whatever cookies shortcomings, they are still being used and there is no
> viable replacement so I don't think we should drop support for them in
> WebSockets.

Of course, HTTP cookies are still useful. That doesn't mean WS should
inherit them. We are not preventing WebSocket applications from using
HTTP cookies or making it difficult.

Because WS is stateful, the server can simply associate user state
with connection. It doesn't need to send user state back to client,
then ask client to send it back. That mechanism makes sense for HTTP,
but not WS.

There is still a problem of associating multiple WS connections from
the same user, but that is a much smaller problem than what cookies
try to solve.

My real fear of cookies is from reading that blog
http://lcamtuf.blogspot.com/2010/10/http-cookies-or-how-not-to-design.html
Whose head won't explode by just thinking all the new problems WS will
add to the existing mess if it starts to interact with cookies? Of
course, we can be likewise irresponsible, and just vaguely specify
WS-cookie interaction, leaving many questions open.

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