Re: [hybi] updated Charter proposal (WebSocket)

Greg Wilkins <> Tue, 27 October 2009 09:34 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id DA6C328C1D6 for <>; Tue, 27 Oct 2009 02:34:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.149
X-Spam-Status: No, score=-2.149 tagged_above=-999 required=5 tests=[AWL=0.450, BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id eWai5b0HBU7M for <>; Tue, 27 Oct 2009 02:34:09 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id ECB6328C1D2 for <>; Tue, 27 Oct 2009 02:34:08 -0700 (PDT)
Received: by yxe30 with SMTP id 30so15828178yxe.29 for <>; Tue, 27 Oct 2009 02:34:18 -0700 (PDT)
Received: by with SMTP id l4mr9699704ybh.177.1256636057832; Tue, 27 Oct 2009 02:34:17 -0700 (PDT)
Received: from ? ( []) by with ESMTPS id 14sm340529gxk.14.2009. (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 27 Oct 2009 02:34:16 -0700 (PDT)
Message-ID: <>
Date: Tue, 27 Oct 2009 20:34:11 +1100
From: Greg Wilkins <>
User-Agent: Thunderbird (X11/20090817)
MIME-Version: 1.0
To: Ian Hickson <>
References: <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
X-Enigmail-Version: 0.95.7
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
Subject: Re: [hybi] updated Charter proposal (WebSocket)
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 27 Oct 2009 09:34:09 -0000

Ian Hickson wrote:
> On Tue, 27 Oct 2009, Mark Nottingham wrote:
>> There really isn't anything for proxy vendors to implement in 
>> WebSockets, is there? Provided that they support CONNECT, of course.
> Right; as written, WebSocket can be used with explicit SOCKS or HTTP 
> proxies (in the latter case using CONNECT), and there's no built-in 
> support for dedicated WebSocket proxies though man-in-the-middle proxies 
> could be written to handle unencrypted WebSocket proxies if there was a 
> need to do so (though I can't see what the point would be).

For HTTP, there is a huge industry involved in providing value
add intermediaries that do all sorts of things:

 + connection aggregation
 + caching
 + load balancing
 + SSL offload
 + virus scanning
 + NSFW scanning
 + auditing
 + language translation
 + authentication, accounting and auditing
 + hanging get or long poll offload
 + mashups and portal based aggregation
 + advert insertion
 + advertisement insertion
 + debugging aids

This list is just off the top of my head.  I'm sure
there are many many many more web intermediaries out there.

These products exist not because of deficiencies in HTTP, but
due to real needs that have evolved from our usage of
request/response data on the internet.  They are able to
do powerful things because of the good semantic content
of HTTP messages.

I don't think it is a stretch to imagine that when we start
exchanging bidirectional data, that similar and/or new
needs for value adding intermediaries will evolve.

Even with the low semantic content of ws messages, I can
imagine that intermediaries will develop to reverse
engineer content and manipulate /monitor/control it in
some fashion.

So I see it as prudent to have a protocol that at least
acknowledges that intermediaries might exist as parties
with at least the ability to close connections if
not participate on them.

Having a bidirectional protocol that does an
end-run around intermediaries is not going to
avoid these needs arising.