Re: [hybi] Web sockets and existing HTTP stacks
Roberto Peon <fenix@google.com> Wed, 03 February 2010 08:00 UTC
Return-Path: <fenix@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 869983A6A01 for <hybi@core3.amsl.com>; Wed, 3 Feb 2010 00:00:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.577
X-Spam-Level:
X-Spam-Status: No, score=-105.577 tagged_above=-999 required=5 tests=[AWL=0.399, 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 RBheOGGrMCou for <hybi@core3.amsl.com>; Wed, 3 Feb 2010 00:00:12 -0800 (PST)
Received: from smtp-out.google.com (smtp-out.google.com [216.239.33.17]) by core3.amsl.com (Postfix) with ESMTP id A7F373A6A00 for <hybi@ietf.org>; Wed, 3 Feb 2010 00:00:11 -0800 (PST)
Received: from spaceape23.eur.corp.google.com (spaceape23.eur.corp.google.com [172.28.16.75]) by smtp-out.google.com with ESMTP id o1380p4p012837 for <hybi@ietf.org>; Wed, 3 Feb 2010 08:00:51 GMT
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1265184051; bh=z0oWm6YBAB/VMr+GtrHnO8cl2Dw=; h=MIME-Version:In-Reply-To:References:Date:Message-ID:Subject:From: To:Cc:Content-Type; b=nvWxMeMnCCPcdBU0QyIiogfVCRPQry8S4PNOJhI/eyB/kREnvOU9AnCfryf4Ryfon qT6vt2vN6/HjwyR3b27Vg==
DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=mime-version:in-reply-to:references:date:message-id:subject:from:to: cc:content-type:x-system-of-record; b=h6IK2fOIoSZC+vYtGmFyxldjiwcvTqL4qRfJl31NJcaT8eIlB4fCN9qNIpf0tMmJ9 h2WbqccEx2KZbbpLSU/3A==
Received: from pxi10 (pxi10.prod.google.com [10.243.27.10]) by spaceape23.eur.corp.google.com with ESMTP id o1380ntH006147 for <hybi@ietf.org>; Wed, 3 Feb 2010 00:00:50 -0800
Received: by pxi10 with SMTP id 10so1059311pxi.13 for <hybi@ietf.org>; Wed, 03 Feb 2010 00:00:49 -0800 (PST)
MIME-Version: 1.0
Received: by 10.142.59.19 with SMTP id h19mr95035wfa.243.1265184049315; Wed, 03 Feb 2010 00:00:49 -0800 (PST)
In-Reply-To: <31123817-6D3F-489D-9F48-109AC93E6769@apple.com>
References: <557ae280911171402v7546e5e7n93a1e57f87dc10e5@mail.gmail.com> <5c902b9e0912181640n497169cdrfa71f9a2908e6ef3@mail.gmail.com> <20091219005442.GA10949@shareable.org> <4B2C287E.1030006@webtide.com> <Pine.LNX.4.64.1001310835410.3846@ps20323.dreamhostps.com> <4B67A237.2040505@webtide.com> <ad99d8ce1002012139l3b8f525bj9caf7861332f3d18@mail.gmail.com> <1427E183-FDBC-4854-9455-B93AB28DAB03@apple.com> <ad99d8ce1002012343n132169f8wbaacc1cf4efe2f87@mail.gmail.com> <31123817-6D3F-489D-9F48-109AC93E6769@apple.com>
Date: Wed, 03 Feb 2010 00:00:49 -0800
Message-ID: <ad99d8ce1002030000i566f3517qddf4e62f386c9211@mail.gmail.com>
From: Roberto Peon <fenix@google.com>
To: Maciej Stachowiak <mjs@apple.com>
Content-Type: multipart/alternative; boundary="00504502bc8cd5bfac047ead9d29"
X-System-Of-Record: true
Cc: hybi@ietf.org
Subject: Re: [hybi] Web sockets and existing HTTP stacks
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: Wed, 03 Feb 2010 08:00:13 -0000
On Tue, Feb 2, 2010 at 5:25 PM, Maciej Stachowiak <mjs@apple.com> wrote: > > On Feb 1, 2010, at 11:43 PM, Roberto Peon wrote: > > Simple-- the proxy won't know that the response from the server is > websocket specific, and may reorder things. > You should not assume that the termination point (the "host") is a server. > It could be a reverse proxy. In such cases, the proxy needs to treat the > response as HTTP until it has been fully read and interpreted. > > This response IS HTTP, so HTTP rules apply. It isn't a some random > more-restrictive subset of the response rules. It is still HTTP at that > point. That means that you don't get to add additional restrictions on that > request. If you do, then you're creating headaches for everyone. > > > OK, just to clarify, are you saying that it's specifically the constraint > on header ordering that is a problem? I'm trying to figure out which > specific requirements are problematic and why. For example, is the > requirement to have some special text in the status line acceptable? > Having some required header ordering is a problem. As for special text in the status line, I'd have to examine the spec again to be sure-- if proxies have the ability to drop the status text (the third part of the first line of the HTTP response, which I'm assuming we're talking about here), then it shouldn't be relied upon. -=R > > Regards, > Maciej > > > Now, I may kick and scream, etc. but I certainly can be convinced that the > effort to change is worthwhile if the reasons are not arbitrary. > What advantage do we get from requiring special behaviors from the > servers/proxies in this case? I can't think of any benefits, thus my > response! > > -=R > > On Mon, Feb 1, 2010 at 10:11 PM, Maciej Stachowiak <mjs@apple.com> wrote: > >> >> On Feb 1, 2010, at 9:39 PM, Roberto Peon wrote: >> >> >> >> On Mon, Feb 1, 2010 at 7:55 PM, Greg Wilkins <gregw@webtide.com> wrote: >> >>> Ian Hickson wrote: >>> >>> > Similarly, the server, when parsing >>> > the headers in "HTTP" mode, is unaffected by the order -- and indeed, >>> the >>> > Web Socket spec doesn't require _anything_ from the server in terms of >>> > parsing the client request. You can completely ignore it for all the >>> spec >>> > cares. All that matters is that you send back a specific handshake. But >>> if >>> > you're sending back the handshake, then you're a Web Socket server, so >>> why >>> > do we need to follow HTTP rules? We've already established the client >>> is a >>> > Web Socket client, so what on earth is the point of using HTTP rules? >>> >>> We need to follow HTTP rules because we are in a HTTP server >>> that has implemented the HTTP standard and until the CRLF >>> is sent after the 101 response, HTTP rules OK! >>> >> >> Ian-- I know that I'd kick scream and generally raise hell about putting >> that in our little proxy were it not HTTP compliant until the end of the 101 >> response. >> >> >> The current handshake response *is* HTTP compliant, it's just that the >> HTTP response needs to meet some additional restrictions, or it will be >> rejected by the client. Those restrictions include requirements to include >> particular response headers (apparently not controversial), to include >> particular text in the status line (only mildly controversial), and to >> require that the first two response headers headers must be two specific >> ones, with an exact required order and capitalization (this appears to bug >> people the most and perhaps creates the most headaches inside existing >> server code bases). >> >> Are these restrictions a practical problem for you? If so, which are >> problematic, and can you describe the concrete issue? Knowing the intensity >> of your response is less useful than knowing the reason for it. >> >> Regards, >> Maciej >> >> > >
- Re: [hybi] Fwd: Web sockets and existing HTTP sta… Jamie Lokier
- Re: [hybi] Fwd: Web sockets and existing HTTP sta… Greg Wilkins
- [hybi] Fwd: Web sockets and existing HTTP stacks Christian Biesinger
- Re: [hybi] Fwd: Web sockets and existing HTTP sta… Jamie Lokier
- Re: [hybi] Fwd: Web sockets and existing HTTP sta… Christian Biesinger
- Re: [hybi] Fwd: Web sockets and existing HTTP sta… Greg Wilkins
- Re: [hybi] [whatwg] Web sockets and existing HTTP… Ian Hickson
- Re: [hybi] [whatwg] Web sockets and existing HTTP… Alexey Proskuryakov
- Re: [hybi] [whatwg] Web sockets and existing HTTP… Greg Wilkins
- Re: [hybi] [whatwg] Web sockets and existing HTTP… Greg Wilkins
- Re: [hybi] [whatwg] Web sockets and existing HTTP… Justin Erenkrantz
- Re: [hybi] [whatwg] Web sockets and existing HTTP… Jamie Lokier
- Re: [hybi] [whatwg] Web sockets and existing HTTP… Justin Erenkrantz
- Re: [hybi] [whatwg] Web sockets and existing HTTP… Jamie Lokier
- Re: [hybi] [whatwg] Web sockets and existing HTTP… Mark Nottingham
- Re: [hybi] [whatwg] Web sockets and existing HTTP… Greg Wilkins
- Re: [hybi] [whatwg] Web sockets and existing HTTP… Ian Hickson
- Re: [hybi] [whatwg] Web sockets and existing HTTP… Greg Wilkins
- Re: [hybi] [whatwg] Web sockets and existing HTTP… Pieter Hintjens
- Re: [hybi] Web sockets and existing HTTP stacks Ian Hickson
- Re: [hybi] Web sockets and existing HTTP stacks Justin Erenkrantz
- Re: [hybi] Web sockets and existing HTTP stacks Pieter Hintjens
- Re: [hybi] Web sockets and existing HTTP stacks Pieter Hintjens
- Re: [hybi] Web sockets and existing HTTP stacks L.Wood
- Re: [hybi] Web sockets and existing HTTP stacks Jamie Lokier
- Re: [hybi] Web sockets and existing HTTP stacks Jamie Lokier
- Re: [hybi] Web sockets and existing HTTP stacks Maciej Stachowiak
- Re: [hybi] Web sockets and existing HTTP stacks Justin Erenkrantz
- Re: [hybi] Web sockets and existing HTTP stacks SM
- Re: [hybi] Web sockets and existing HTTP stacks Mridul Muralidharan
- Re: [hybi] Web sockets and existing HTTP stacks Maciej Stachowiak
- Re: [hybi] Web sockets and existing HTTP stacks Mridul Muralidharan
- Re: [hybi] Web sockets and existing HTTP stacks Roberto Peon
- Re: [hybi] Web sockets and existing HTTP stacks Mark Nottingham
- Re: [hybi] Web sockets and existing HTTP stacks Pieter Hintjens
- Re: [hybi] Web sockets and existing HTTP stacks Mridul Muralidharan
- Re: [hybi] Web sockets and existing HTTP stacks Mridul Muralidharan
- Re: [hybi] Web sockets and existing HTTP stacks Jamie Lokier
- Re: [hybi] Web sockets and existing HTTP stacks Pieter Hintjens
- Re: [hybi] Web sockets and existing HTTP stacks Jamie Lokier
- Re: [hybi] Web sockets and existing HTTP stacks SM
- Re: [hybi] Web sockets and existing HTTP stacks Greg Wilkins
- [hybi] Sentinel framing. was: Web sockets and exi… Greg Wilkins
- Re: [hybi] Web sockets and existing HTTP stacks Greg Wilkins
- Re: [hybi] Web sockets and existing HTTP stacks Roberto Peon
- Re: [hybi] Web sockets and existing HTTP stacks Maciej Stachowiak
- Re: [hybi] Web sockets and existing HTTP stacks Roberto Peon
- Re: [hybi] Web sockets and existing HTTP stacks Francis Brosnan Blazquez
- Re: [hybi] Web sockets and existing HTTP stacks Maciej Stachowiak
- Re: [hybi] Web sockets and existing HTTP stacks Jamie Lokier
- Re: [hybi] Web sockets and existing HTTP stacks Jamie Lokier
- Re: [hybi] Web sockets and existing HTTP stacks Jamie Lokier
- Re: [hybi] Web sockets and existing HTTP stacks Jamie Lokier
- Re: [hybi] Web sockets and existing HTTP stacks Jamie Lokier
- Re: [hybi] Web sockets and existing HTTP stacks Jamie Lokier
- Re: [hybi] Web sockets and existing HTTP stacks Jamie Lokier
- Re: [hybi] Web sockets and existing HTTP stacks Greg Wilkins
- Re: [hybi] Web sockets and existing HTTP stacks Mridul Muralidharan
- Re: [hybi] Web sockets and existing HTTP stacks Mridul Muralidharan
- Re: [hybi] Web sockets and existing HTTP stacks Roberto Peon
- Re: [hybi] Web sockets and existing HTTP stacks Julian Reschke
- Re: [hybi] Web sockets and existing HTTP stacks Maciej Stachowiak
- Re: [hybi] Web sockets and existing HTTP stacks Roberto Peon
- Re: [hybi] Web sockets and existing HTTP stacks Maciej Stachowiak
- Re: [hybi] Web sockets and existing HTTP stacks Roberto Peon
- Re: [hybi] Web sockets and existing HTTP stacks Maciej Stachowiak
- Re: [hybi] Web sockets and existing HTTP stacks Vladimir Katardjiev
- Re: [hybi] Web sockets and existing HTTP stacks Greg Wilkins
- Re: [hybi] Web sockets and existing HTTP stacks Maciej Stachowiak