Re: [hybi] #1: HTTP Compliance

John Tamplin <jat@google.com> Wed, 21 July 2010 14:27 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 BF5E43A6AF1 for <hybi@core3.amsl.com>; Wed, 21 Jul 2010 07:27:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.976
X-Spam-Level:
X-Spam-Status: No, score=-105.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4, 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 fS80WJFVSkQB for <hybi@core3.amsl.com>; Wed, 21 Jul 2010 07:27:44 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [216.239.44.51]) by core3.amsl.com (Postfix) with ESMTP id A5E383A6A25 for <hybi@ietf.org>; Wed, 21 Jul 2010 07:27:43 -0700 (PDT)
Received: from hpaq2.eem.corp.google.com (hpaq2.eem.corp.google.com [172.25.149.2]) by smtp-out.google.com with ESMTP id o6LERxPd023592 for <hybi@ietf.org>; Wed, 21 Jul 2010 07:27:59 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1279722479; bh=51EO82Ah7pwyRcigsIS0M09HGoM=; h=MIME-Version:In-Reply-To:References:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=Nrj/LVhTVL75DEgSEsAjmB9GP9BuVwLnUGErnf+lP7irf80tXxwg7GEp2jtU40ScD RHeXDv9+E67WTrdLVrD5g==
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=mH2q/KMyUZ0ht9i+1hi2iwyCL++8GCxkwjDex8NlD3uyYENJwx1aq7nsHUVcBlYKN 7b7jh1jQDzaXvuR41Lkeg==
Received: from gwb11 (gwb11.prod.google.com [10.200.2.11]) by hpaq2.eem.corp.google.com with ESMTP id o6LERv09009488 for <hybi@ietf.org>; Wed, 21 Jul 2010 07:27:57 -0700
Received: by gwb11 with SMTP id 11so3698452gwb.15 for <hybi@ietf.org>; Wed, 21 Jul 2010 07:27:57 -0700 (PDT)
Received: by 10.150.113.15 with SMTP id l15mr2092358ybc.290.1279722477175; Wed, 21 Jul 2010 07:27:57 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.151.60.3 with HTTP; Wed, 21 Jul 2010 07:27:37 -0700 (PDT)
In-Reply-To: <Pine.LNX.4.64.1005182105360.22838@ps20323.dreamhostps.com>
References: <068.d07026741c6694cd80652d2a7d34f236@tools.ietf.org> <Pine.LNX.4.64.1005170918310.25609@ps20323.dreamhostps.com> <4BF11920.2080307@webtide.com> <Pine.LNX.4.64.1005171039050.25609@ps20323.dreamhostps.com> <4BF12FF1.2020101@webtide.com> <15307.1274106895.116423@Sputnik> <Pine.LNX.4.64.1005172259030.22838@ps20323.dreamhostps.com> <20100518003753.GP20356@shareable.org> <Pine.LNX.4.64.1005180229430.22838@ps20323.dreamhostps.com> <20100518121245.GR20356@shareable.org> <AANLkTiniCjBwm5T59as8jByM5xDhPMrea-GqZFpWPAVS@mail.gmail.com> <Pine.LNX.4.64.1005182105360.22838@ps20323.dreamhostps.com>
From: John Tamplin <jat@google.com>
Date: Wed, 21 Jul 2010 10:27:37 -0400
Message-ID: <AANLkTingZLsWoejLWbEbXGy_9mBo4eBc_Kv0wW9_Q0Xr@mail.gmail.com>
To: Ian Hickson <ian@hixie.ch>
Content-Type: multipart/alternative; boundary="000e0cd5cfe2a9c3ee048be69b32"
X-System-Of-Record: true
Cc: "hybi@ietf.org" <hybi@ietf.org>
Subject: Re: [hybi] #1: HTTP Compliance
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: Wed, 21 Jul 2010 14:27:45 -0000

On Tue, May 18, 2010 at 5:16 PM, Ian Hickson <ian@hixie.ch> wrote:

> On Tue, 18 May 2010, Greg Wilkins wrote:
> >
> > If the handshake is HTTP compliant, then the connection for a websocket
> > handshake could be taken from the existing pool of idle connections to a
> > host.  That would save the time needed to establish the connection.
>
> The resemblence to HTTP is nothing more than a hack to alolow us to share
> ports in certain advanced scenarios. Most Web Socket servers will know
> nothing about HTTP.


I disagree completely -- there is going to be a web server involved in
delivering the web application, and I think the more usual scenario is that
web server also implements the WebSocket server.  Why would someone prefer
to deploy two servers rather than one, except in the case where their web
server doesn't yet support WebSocket?  If this protocol is successful, over
time that will drop to 0.


> Reusing connections is a level of complexity that is
> completely unwarranted and that would only be useful in the rarest of
> cases. It's a proposal that lies on completely the wrong side of the 80/20
> line and would introduce _massive_ complexity for authors, who would have
> no idea why their WebSocket servers were suddenly receiving random HTTP
> requests and vice versa.


I'm not sold on connection reuse, but I am not sure where these random HTTP
requests would be coming from.  If a connection was to ws://foo.org/socket,
the connection was closed, and then another connection was needed for
http://foo.org/image.gif, presumably the server at foo.org:80 is capable of
answering either request since it would have had to handle either request on
a new connection.  If instead it was ws://socket.foo.org/socket, then
obviously that connection would not be used to reach www.foo.org.

I'm not sure that adding connection keep-alive and/or restarting the
handshake is justified by the benefits, but I don't see where your argument
comes from.

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