Re: [hybi] #1: HTTP Compliance

Jamie Lokier <jamie@shareable.org> Tue, 18 May 2010 00:38 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 EE81C28C0FE for <hybi@core3.amsl.com>; Mon, 17 May 2010 17:38:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.973
X-Spam-Level:
X-Spam-Status: No, score=-0.973 tagged_above=-999 required=5 tests=[AWL=-0.974, 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 wcvy-ihfPhwX for <hybi@core3.amsl.com>; Mon, 17 May 2010 17:38:04 -0700 (PDT)
Received: from mail2.shareable.org (mail2.shareable.org [80.68.89.115]) by core3.amsl.com (Postfix) with ESMTP id EBF8E28C0F3 for <hybi@ietf.org>; Mon, 17 May 2010 17:38:03 -0700 (PDT)
Received: from jamie by mail2.shareable.org with local (Exim 4.63) (envelope-from <jamie@shareable.org>) id 1OEAoj-0001G7-7c; Tue, 18 May 2010 01:37:53 +0100
Date: Tue, 18 May 2010 01:37:53 +0100
From: Jamie Lokier <jamie@shareable.org>
To: Ian Hickson <ian@hixie.ch>
Message-ID: <20100518003753.GP20356@shareable.org>
References: <068.d07026741c6694cd80652d2a7d34f236@tools.ietf.org> <4BF106AD.6020506@webtide.com> <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>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <Pine.LNX.4.64.1005172259030.22838@ps20323.dreamhostps.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 00:38:05 -0000

Ian Hickson wrote:
> On Mon, 17 May 2010, Dave Cridland wrote:
> > It makes sense that if we were to use WebSockets in a similar way, then 
> > a desktop client might initiate a session with an HTTP service without 
> > knowing a priori if it's an HTTP or WebSocket service.
> 
> I don't understand how that could happen. Could you elaborate on what kind 
> of desktop client you mean? When would you ever connect to a port without 
> knowing ahead of time what protocol you want to talk?

For example, a social networking client running in a browser, designed
to fetch feed information from numerous different services from other
providers (imagine Yahoo, Facebook, Twitter etc.), those services
running a variety of feed protocols over WebSocket.

When the user is given a URL for a third party bidirectional service,
the client tries WebSocket subprotocol A first, then WebSocket
subprotocol B, then C, then a HTTP hanging-GET equivalent.

Although you _could_ give the protocol along with the URL to users,
clearly that would be avoided as much as possible.  Less is better.

And anyway, if you did that, it would break when the provider "Yahoo"
switches their service from standardised subprotocol B to A (because
it works better in some way, and which has no visible effect on
Yahoo's own clients).  So the multi-service client needs to try them
in turn, not be told what to use.

-- Jamie