Re: [hybi] More feedback on WebSockets
Ian Hickson <ian@hixie.ch> Tue, 27 October 2009 09:37 UTC
Return-Path: <ian@hixie.ch>
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 9A5B83A659B for <hybi@core3.amsl.com>; Tue, 27 Oct 2009 02:37:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.554
X-Spam-Level:
X-Spam-Status: No, score=-2.554 tagged_above=-999 required=5 tests=[AWL=0.045, BAYES_00=-2.599]
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 mZVeMpasFybO for <hybi@core3.amsl.com>; Tue, 27 Oct 2009 02:37:36 -0700 (PDT)
Received: from looneymail-a2.g.dreamhost.com (caibbdcaaaaf.dreamhost.com [208.113.200.5]) by core3.amsl.com (Postfix) with ESMTP id 82C5F3A6897 for <hybi@ietf.org>; Tue, 27 Oct 2009 02:37:36 -0700 (PDT)
Received: from hixie.dreamhostps.com (hixie.dreamhost.com [208.113.210.27]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by looneymail-a2.g.dreamhost.com (Postfix) with ESMTP id EF44116D3CC; Tue, 27 Oct 2009 02:37:50 -0700 (PDT)
Date: Tue, 27 Oct 2009 09:37:51 +0000
From: Ian Hickson <ian@hixie.ch>
To: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <FDC38D4B-AB64-4F6B-B569-81D7A56DEC8D@mnot.net>
Message-ID: <Pine.LNX.4.62.0910270912040.9145@hixie.dreamhostps.com>
References: <FDC38D4B-AB64-4F6B-B569-81D7A56DEC8D@mnot.net>
Content-Language: en-GB-hixie
Content-Style-Type: text/css
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset="US-ASCII"
Cc: hybi@ietf.org
Subject: Re: [hybi] More feedback on WebSockets
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, 27 Oct 2009 09:37:37 -0000
On Tue, 27 Oct 2009, Mark Nottingham wrote: > > Overall, I think this draft looks very good, excepting the issues below: > > 1) Abstract - AIUI one of the primary motivations for WS (especially > over just exposing a TCP API in browsers) is the use of the "Web > security model." This should be mentioned in the Abstract (and > background?). Added some text to that effect. > 2) The handshake protocol looks like HTTP, but is not (e.g., it's case- > sensitive and whitespace-sensitive). However, you define the default > ports for WS and WSS to be port 80 and 443, respectively. > > These ports are reserved for HTTP, at least initially; while you can use > HTTP to upgrade to a different protocol, defining a > HTTP-like-but-not-really-HTTP handshake protocol to run over them > initially conflicts with the designated use of the port. IANA told me to use ports 80 and 443 for WebSocket. See IANA ticket #257455. (I had originally requested new ports, ideally 81 and 815.) I disagree that the current handshake isn't like HTTP enough, though. The request is fully HTTP-compliant. What value would there be in relaxing the rules on what WebSocket clients should send in the request? I don't understand the real-world case you are concerned about. > 3) In section 1.6 (Establishing a Connection), you say > > > On the face of it, the simplest method would seem to be to use port > > 80 to get a direct connection to a Web Socket server. Port 80 > > traffic, however, will often be intercepted by HTTP proxies, which > > can lead to the connection failing to be established. > > Given this, is it a good idea for the default port for the WS scheme to > be port 80? Why not use a separate port and fall back to 443 with null > encryption, for example? That's what the spec used to require, but IANA requested that I use ports 80 and 443 directly. > 4) In section 1.2, you define the payload of the headers as ASCII, but > then allow a wide range of Unicode characters. Which is it? Section 1.2 doesn't say that the payload of the headers is ASCII, it just says that they are ASCII case-insensitive (i.e. that a-z matches A-Z, but that U+00C1 doesn't match U+00E1). I've tried to clarify this a bit. (Also, section 1.2 is non-normative; it doesn't define anything.) > 5) Are there any constraints placed upon the field-value of the > WebSocket-Protocol header? Is there any structure? Not currently. > If I want to define an intermediary function for WebSockets that allows > multiplexing, and I wish to unambiguously identify that it's in use, is > this an appropriate use for the WebSocket-Protocol header? Yes. > If so, how do I avoid conflicting with the names of other subprotocols, Use a unique name, e.g. by using your domain name as the protocol name, or googling for your protocol name and seeing if anyone else has used it. > and how do I indicate that multiple subprotocols are in use on one > connection? Only one protocol can be in use per connection. If your protocol is just another layer below the final application-level protocol, then your protocol would have its own equivalent mechanism. Cheers, -- Ian Hickson U+1047E )\._.,--....,'``. fL http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
- [hybi] More feedback on WebSockets Mark Nottingham
- Re: [hybi] More feedback on WebSockets Ian Hickson
- Re: [hybi] More feedback on WebSockets Greg Wilkins
- Re: [hybi] More feedback on WebSockets Ian Hickson
- Re: [hybi] More feedback on WebSockets Greg Wilkins
- Re: [hybi] More feedback on WebSockets Ian Hickson
- Re: [hybi] More feedback on WebSockets Greg Wilkins
- Re: [hybi] More feedback on WebSockets Ian Hickson
- Re: [hybi] More feedback on WebSockets Greg Wilkins
- Re: [hybi] More feedback on WebSockets Mark Nottingham
- Re: [hybi] More feedback on WebSockets Ian Hickson
- Re: [hybi] More feedback on WebSockets Ian Hickson