Re: [hybi] #1: HTTP Compliance

John Tamplin <jat@google.com> Thu, 22 July 2010 06:50 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 453003A67B4 for <hybi@core3.amsl.com>; Wed, 21 Jul 2010 23:50: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 uPI5MAHrkZsv for <hybi@core3.amsl.com>; Wed, 21 Jul 2010 23:50:43 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [216.239.44.51]) by core3.amsl.com (Postfix) with ESMTP id E15063A6783 for <hybi@ietf.org>; Wed, 21 Jul 2010 23:50:40 -0700 (PDT)
Received: from wpaz21.hot.corp.google.com (wpaz21.hot.corp.google.com [172.24.198.85]) by smtp-out.google.com with ESMTP id o6M6ov6m021636 for <hybi@ietf.org>; Wed, 21 Jul 2010 23:50:57 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1279781457; bh=xp4tcRcoRVmop09QDr5f9sfMQSw=; h=MIME-Version:In-Reply-To:References:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=Dm6Qs43wD9ACzogOgbiHSJd3n+wNTDQPtQR5T2sbwQqXghkXJ9usIawHKjVTyWabT hzgomZzlAgRquGKpY2zQw==
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=dkL8ZENV7jSHrX/5ec4CEQjKRNcXBkjiKmngQJLT+eNp/kPG3vnz335H2j+As2EtP gDMUfbicU8QcRSX0CPS4w==
Received: from gxk4 (gxk4.prod.google.com [10.202.11.4]) by wpaz21.hot.corp.google.com with ESMTP id o6M6ouAN007967 for <hybi@ietf.org>; Wed, 21 Jul 2010 23:50:56 -0700
Received: by gxk4 with SMTP id 4so5467528gxk.14 for <hybi@ietf.org>; Wed, 21 Jul 2010 23:50:56 -0700 (PDT)
Received: by 10.150.173.35 with SMTP id v35mr3309049ybe.364.1279781456128; Wed, 21 Jul 2010 23:50:56 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.151.60.3 with HTTP; Wed, 21 Jul 2010 23:50:34 -0700 (PDT)
In-Reply-To: <Pine.LNX.4.64.1007220500080.7242@ps20323.dreamhostps.com>
References: <068.d07026741c6694cd80652d2a7d34f236@tools.ietf.org> <4BF106AD.6020506@webtide.com> <A42E692A-7210-4FF1-AB4F-CFB3E8C38756@apple.com> <AANLkTinorjXFsTH=TvhhF-+e3Eyen8EA2qL7wFCmqpYe@mail.gmail.com> <Pine.LNX.4.64.1007212247590.7242@ps20323.dreamhostps.com> <20100721230350.GF6475@1wt.eu> <Pine.LNX.4.64.1007220500080.7242@ps20323.dreamhostps.com>
From: John Tamplin <jat@google.com>
Date: Thu, 22 Jul 2010 02:50:34 -0400
Message-ID: <AANLkTi=xe5fPpL2KHygYaLtsDdi5G44R5-thhwAJOSoW@mail.gmail.com>
To: Ian Hickson <ian@hixie.ch>
Content-Type: multipart/alternative; boundary="000e0cd571c4152a23048bf4573f"
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: Thu, 22 Jul 2010 06:50:45 -0000

On Thu, Jul 22, 2010 at 2:32 AM, Ian Hickson <ian@hixie.ch> wrote:

> > 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.
>
> I see no advantage in the common case to using the same software for both.
> It's far easier to just host them separately.
>
> Why don't people use the same software for HTTP and DNS? Or IMAP and SMTP?
> Or IRC and FTP? Why would they act differently for HTTP and WebSocket?


Few people serve their web apps from a DNS server.  Initially, virtually all
WebSocket clients are going to be JS applications downloaded via HTTP.  If I
am writing a JS game to be run in the browser, why would I want to maintain
two servers instead of one?  Using Jetty (and I would expect most other
servers to add support once the protocol is standardized), I can just add
another method on my servlet and presto, I have WebSocket support.  This is
especially important if the fallback is going to be hanging gets or polling
via HTTP -- I can have common code for either solution, rather than
duplicating code that runs in two separate servers, and it gets me the
ability to more easily share state between HTTP requests and WebSocket
messages, such as authentication credentials.

On Thu, 22 Jul 2010, Greg Wilkins wrote:
> >
> > Currently the WS handshake can only be rejected by closing the
> > connection and discarding any potential HTTP response.  Thus a webapp
> > that wishes to fall back to a non-ws transport will have to establish a
> > new connection, maybe negotiate TLS, then handshake the new transport.
> > Thus there will be an extra 2 or 3 round trips to establish the
> > fall-back transport.
>
> The only time this would be useful is when the script doesn't know ahead
> of time which host it will be connecting to, and doesn't know ahead of
> time what protocols that host will support, but where it does know that it
> will support either a Web Socket server or an HTTP-based mechanism. This
> will only occur during the transition period where some sites provide an
> HTTP-based protocol but not a Web Socket version, but where other sites
> provide Web Socket equivalents.
>

Or if it doesn't know that it can actually speak WebSocket all the way to
the server because of potentially interfering intermediaries.

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