Re: [hybi] #1: HTTP Compliance

Jamie Lokier <jamie@shareable.org> Tue, 18 May 2010 12:03 UTC

Return-Path: <jamie@shareable.org>
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 581193A6987 for <hybi@core3.amsl.com>; Tue, 18 May 2010 05:03:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.96
X-Spam-Level:
X-Spam-Status: No, score=-0.96 tagged_above=-999 required=5 tests=[AWL=-0.961, BAYES_50=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 emWqCxe7+OMx for <hybi@core3.amsl.com>; Tue, 18 May 2010 05:03:40 -0700 (PDT)
Received: from mail2.shareable.org (mail2.shareable.org [80.68.89.115]) by core3.amsl.com (Postfix) with ESMTP id 63D813A6966 for <hybi@ietf.org>; Tue, 18 May 2010 05:03:40 -0700 (PDT)
Received: from jamie by mail2.shareable.org with local (Exim 4.63) (envelope-from <jamie@shareable.org>) id 1OELWC-0005fb-Ap; Tue, 18 May 2010 13:03:28 +0100
Date: Tue, 18 May 2010 13:03:28 +0100
From: Jamie Lokier <jamie@shareable.org>
To: Maciej Stachowiak <mjs@apple.com>
Message-ID: <20100518120328.GQ20356@shareable.org>
References: <068.d07026741c6694cd80652d2a7d34f236@tools.ietf.org> <4BF106AD.6020506@webtide.com> <A42E692A-7210-4FF1-AB4F-CFB3E8C38756@apple.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <A42E692A-7210-4FF1-AB4F-CFB3E8C38756@apple.com>
User-Agent: Mutt/1.5.13 (2006-08-11)
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: Tue, 18 May 2010 12:03:41 -0000

Maciej Stachowiak wrote:
> 
> On May 17, 2010, at 2:04 AM, Greg Wilkins wrote:
> 
> > 
> > All,
> > 
> > I know this issues has been somewhat sidetracked by the
> > discussion about TLS.
> > 
> > However, this particular requirements is conditional for only when
> > sharing a port with HTTP, so I think it valuable to continue to
> > try to finalize this requirement.
> 
> I think we need to reframe this requirement so that it makes sense even if we change the handshake to be at the TLS level rather than at the HTTP level. Both the current requirement and the new requirement would make no sense if the handshake was done via TLS.
> 
> > 
> > Currently there is no clear consensus either way, with perhaps
> > a few more voices against compliance is not required.
> > 
> > For firstly, I'd like to encourage all list lurkers to
> > speak up and help sway the debate one way or the other.
> > 
> > Also, in an attempt to move the conversation on, I'd like
> > flip the question around and ask if somebody can clearly
> > state what is the down side of adopting HTTP compliance
> > other than it might force a breaking change in the
> > -76 draft.   Is there some other requirement that can only
> > be achieved by breaking compliance?
> 
> 
> Ian has claimed that the extra bytes after the request help
> WebSocket fail early in the face of unaware proxies, though we do not
> yet have data showing this to be the case. We do know that without
> this, often the handshake will appear to succeed but transmitting
> messages will fail, for the network setups of many users.
> 
> I don't think anyone has indicated a practical problem caused by the extra bytes.

Yes, we have.  It block useful things:

   - Trying multiple WebSocket subprotocols in turn (on the same connection)
   - Trying a HTTP-based protocol if WebSocket is unavailable (ditto)
   - HTTP authentication if the server responds with an authentication request
   - Pipelining WebSocket frames to avoid the negotation RTT delay

Worse, it makes them difficult to add in future, if they are found to be good.

-- Jamie