Re: [hybi] #4: handshake does not work properly with HTTP reverse proxy.

"Shelby Moore" <shelby@coolpage.com> Mon, 16 August 2010 01:19 UTC

Return-Path: <shelby@coolpage.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 A8A643A68F3 for <hybi@core3.amsl.com>; Sun, 15 Aug 2010 18:19:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.865
X-Spam-Level:
X-Spam-Status: No, score=-0.865 tagged_above=-999 required=5 tests=[AWL=-0.125, BAYES_20=-0.74]
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 oPw9hbsitV71 for <hybi@core3.amsl.com>; Sun, 15 Aug 2010 18:19:37 -0700 (PDT)
Received: from www5.webmail.pair.com (www5.webmail.pair.com [66.39.3.83]) by core3.amsl.com (Postfix) with SMTP id F36E33A68F1 for <hybi@ietf.org>; Sun, 15 Aug 2010 18:19:36 -0700 (PDT)
Received: (qmail 48072 invoked by uid 65534); 16 Aug 2010 01:20:12 -0000
Received: from 121.97.54.174 ([121.97.54.174]) (SquirrelMail authenticated user shelby@coolpage.com) by sm.webmail.pair.com with HTTP; Sun, 15 Aug 2010 21:20:12 -0400
Message-ID: <68c125d1573013544ac98cb1503566d2.squirrel@sm.webmail.pair.com>
In-Reply-To: <AANLkTi=F4U7FBteh4yPi8GKnMEzeNiihzNZ=JwhfDzky@mail.gmail.com>
References: <afe794983c8933193841c79d74d4eb9a.squirrel@sm.webmail.pair.com> <AANLkTi=F4U7FBteh4yPi8GKnMEzeNiihzNZ=JwhfDzky@mail.gmail.com>
Date: Sun, 15 Aug 2010 21:20:12 -0400
From: Shelby Moore <shelby@coolpage.com>
To: Greg Wilkins <gregw@webtide.com>
User-Agent: SquirrelMail/1.4.20
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Priority: 3 (Normal)
Importance: Normal
Cc: hybi@ietf.org
Subject: Re: [hybi] #4: handshake does not work properly with HTTP reverse proxy.
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: shelby@coolpage.com
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, 16 Aug 2010 01:19:38 -0000

> On 15 August 2010 19:59, Shelby Moore <shelby@coolpage.com> wrote:
>> Greg Wilkins wrote:
>>> This is already an issue with cometd-2, now that we support websocket
>>> as an optional transport.  When it is enabled, there is noticeable
>>> additional establishing a comet web page (eg logging into a chat
>>> room), while websocket hand shake is tried and fails, before the next
>>> handshake is tried.
>>
>> Use the BOSH or Comet in parallel until WebSocket handshake is
>> completed?
>
>
> Using websocket in parallel would just increase the connection count
> and complexity of applications as they try to deal with something that
> is essentially a transport concern.
>
> When a web page downloads, the browser will typically use 2-6 HTTP
> connections to download all the content, css, images, script etc.   It
> makes perfect sense to me that if the scripts then start a websocket
> connection, then the browser should be able to take one of those 2-6
> existing connections an try a websocket upgrade.  That is a single
> round trip to check and establish websocket is supported.
>
> Sure there are failure modes where a websocket connection is accepted,
> but then does not actually work (or subsequently fails to work).  But
> there are similar failure modes with BOSH/comet and implementations of
> those protocols still need to implement timeouts etc to catch all
> failures. Websocket is not a silver bullet that will suddenly make the
> internet a truly error free reliable network.
>
>
> For me, the attraction of websocket is mostly that it offers the
> possibility of reducing the long term connection count per client from
> 2 to 1. That it promises some potential improvements in data density
> and max latency is entirely secondary for me.
>
> cheers

Agreed, but won't there be cases where WS/HTTP will refuse to work and
thus you must have Comet/BOSH to fall back on as they always work.  Do not
conflate timeouts with unrecoverable failure, where for example a proxy
still won't allow some data to pass though in WS/HTTP.

WS/port+tunnel is another option that uses only 1 connection and it has
advantage that the hard failure (not the recoverable timeouts and network
instability) will occur at the handshake and only once per
client+server(+DCHP lease) pair.