为什么WebSockets使用(“ws”和“wss”)而不是(“http”和“https”)?

3zwjbxry  于 5个月前  发布在  其他
关注(0)|答案(2)|浏览(70)

注册特殊URI方案wswss的原因是什么?我简单地阅读了规范,没有发现任何关于此更改的原因。
https://www.rfc-editor.org/rfc/rfc6455#section-11.1
WebSocket客户端发送特殊的头(Connection: UpgradeUpgrade: websocket),让你相对容易地决定这是一个普通的HTTP请求(GETPOST等)还是一个WebSocket连接请求。
为什么WebSockets不能使用httphttps方案?

zfycwa2u

zfycwa2u1#

我不是董事会成员,但这里有两个......
该协议的握手目前使用HTTP(S)建立连接,但这是HTTP参与的范围。
未来的版本很可能会使用ALPN等技术来扩展握手的可能性。
通过使用URI方案ws://...wss://...,握手与URI解耦,允许未来的更改以更少的干扰发生。

bvhaajcl

bvhaajcl2#

他们使用它是为了架构清晰,看起来没有技术限制,为什么你不能使用纯粹的http处理你的WebSocket连接。
请注意,用于处理WebSocket连接(如Paho)的JavaScript客户端库纯粹是通过http协议处理WebSocket的,如果您显式地提供以ws协议为前缀的主机,甚至会失败-来自展示代码的一个简单示例:

// Create a client instance
client = new Paho.MQTT.Client(
    location.hostname, Number(location.port), "clientId"
);

字符串

相关问题