On 16/07/2009, at 12:28 PM, Ian Hickson wrote:

On Thu, 16 Jul 2009, Mark Nottingham wrote:

As an alternative, why not:

1) specify a new port for "normal" WebSocket operation, and
2) specify that if there's a proxy configured, ask the proxy to CONNECT to
your new port, and
3) specify that if #2 fails, they can CONNECT to 443 and ask for an Upgrade to
WebSockets in the first HTTP request.

We don't want to ever have a spec-mandated switch from port to port (since
that implies an origin change),

Ah - that makes sense.

but basically, that's what the spec
currently says, except it requires the script to detect the failure at #2 and requires the script to explicitly try again on port 443. (And except that the Upgrade has to be precisely constrained, not arbitrary HTTP, so that we never get to a situation where the client thinks it has done an upgrade but really the other side was tricked into sending the right bytes
for that, letting the script speak to a poor unsuspecting server that
didn't intentionally opt in.)

So, to be clear, the only time the byte-for-byte HTTP handshake is used is when it's over a TLS tunnel via CONNECT (i.e., it's not used to set up the tunnel, but only once it's established)?

If that's the case, should be no problem. A bit weird, thought; speaking two protocols on the same port isn't really good practice...

Cheers,

--
Mark Nottingham       m...@yahoo-inc.com


Reply via email to