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

Mike Belshe <mike@belshe.com> Tue, 20 July 2010 18:38 UTC

Return-Path: <mike@belshe.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 17F423A68BE for <hybi@core3.amsl.com>; Tue, 20 Jul 2010 11:38:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.976
X-Spam-Level:
X-Spam-Status: No, score=-1.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001]
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 mAwT8WBfZHEX for <hybi@core3.amsl.com>; Tue, 20 Jul 2010 11:38:47 -0700 (PDT)
Received: from mail-pz0-f44.google.com (mail-pz0-f44.google.com [209.85.210.44]) by core3.amsl.com (Postfix) with ESMTP id 838FE3A67A7 for <hybi@ietf.org>; Tue, 20 Jul 2010 11:38:47 -0700 (PDT)
Received: by pzk6 with SMTP id 6so2837111pzk.31 for <hybi@ietf.org>; Tue, 20 Jul 2010 11:39:03 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.142.199.20 with SMTP id w20mr9738718wff.251.1279651129662; Tue, 20 Jul 2010 11:38:49 -0700 (PDT)
Received: by 10.142.253.4 with HTTP; Tue, 20 Jul 2010 11:38:49 -0700 (PDT)
In-Reply-To: <20100720090632.GB21095@1wt.eu>
References: <068.da8db0c773647cb0ed73d576f39e93ee@tools.ietf.org> <20100717023749.GA2426@shareable.org> <AANLkTil36SNqlpqq2zNMVSgsA_27kqnuioi0qFTKQR1m@mail.gmail.com> <20100720044352.GE14242@1wt.eu> <AANLkTik6uwFHd6eWl9tnCYcxo09jxZXilPqbu1I67dir@mail.gmail.com> <20100720090632.GB21095@1wt.eu>
Date: Tue, 20 Jul 2010 11:38:49 -0700
Message-ID: <AANLkTikDWtbrz-5GMh_9uYrabsNM3u1MMfR8NwPWOXKd@mail.gmail.com>
From: Mike Belshe <mike@belshe.com>
To: Willy Tarreau <w@1wt.eu>
Content-Type: multipart/alternative; boundary="000e0cd25882075bd1048bd5ffc8"
Cc: hybi@ietf.org, hybi issue tracker <trac@tools.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
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, 20 Jul 2010 18:38:49 -0000

On Tue, Jul 20, 2010 at 2:06 AM, Willy Tarreau <w@1wt.eu> wrote:

> On Tue, Jul 20, 2010 at 04:40:33PM +1000, Greg Wilkins wrote:
> > On 20 July 2010 14:43, Willy Tarreau <w@1wt.eu> wrote:
> > > Also, I would really insist that we add a "Connection: close" in the
> > > initial HTTP handshake, whatever it looks like in the end, so that we
> > > protect the servers against any form of request injection after the
> > > first one.
> >
> > I think that if we fail to come up with a HTTP compliant handshake, then
> a
> > Connection:close would be a good get out of goal free card.
> >
> > However, it does prevent one possible good use case of using the HTTP
> > connection as a HTTP connection in the case that websocket is rejected.
> > Until websocket is widely deployed, many sites will want to fall back to
> a
> > HTTP transport if websockets is rejected.  If the connection can be kept
> > open, then it may be used by the browser for subsequent HTTP requests,
> > saving a round trip.  If a failed handshake response can contain other
> useful
> > content, then you may be able to save 2 round trips in the establishment
> of
> > HTTP transports.
> >
> > 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.   This
> is a
> > discouragement to enabling websocket support in the framework, which is
> > then does not encourage infrastructure providers to support websocket.
>
> Agreed. Also, keeping the connection open is required with some
> authentication
> schemes such as NTLM which authenticate the connection instead of the
> request.
> While this will not be a problem on the Internet, it could make it
> difficult
> to integrate websocket into enterprise applications. This is another reason
> not
> to send any unadvertised data in the handshake by the way !
>

+1.


>
> Regards,
> Willy
>
> _______________________________________________
> hybi mailing list
> hybi@ietf.org
> https://www.ietf.org/mailman/listinfo/hybi
>