为什么WebSockets使用(“ws”和“wss”)而不是(“http”和“https”)?
问题描述:
什么是注册特殊URI方案的原因:“ws”和“wss”? 我简要阅读了规格说明,并没有找到任何有关此更改的原因。为什么WebSockets使用(“ws”和“wss”)而不是(“http”和“https”)?
https://tools.ietf.org/html/rfc6455#section-11.1
的WebSocket客户端发送特殊的头(Connection: Upgrade
,Upgrade: websocket
),让比较容易确定这是否是正常的HTTP请求(GET
,POST
...等),或者这是WebSocket连接请求。
为什么WebSockets无法使用“http”和“https”方案工作?
答
我是不是在董事会或任何东西,但这里的任何2¢...:
协议的握手目前使用的连接建立HTTP(S),但这是尽可能的HTTP参与云。
未来的版本很可能会延长握手的可能性,使用诸如ALPN等技术。
通过使用URI方案ws://...
和wss://...
,握手与URI分离,允许未来的更改以较少的干扰发生。
因为它不是HTTP? –
但它可以同时使用相同的主机同一端口 – acc15
@gre_gor - 从技术上说,它在更改协议之前使用HTTP(S)进行连接。这个问题是有道理的,尽管它忽略了握手的未来变化(如ALPN)。 – Myst