WSS适用于http?

use*_*360 8 ssl http websocket web

有可能在http上有一个wss协议吗?我在一个与http合作的论坛上读过,但wss只适用于https?真的吗 ?

因为我试图在我的本地主机上测试它,但没有工作

Tak*_*aki 18

ws告诉WebSocket客户端库用于http连接WebSocket服务器.同样,wss告诉WebSocket客户端库https用于连接到WebSocket服务器.只是."ws protocol"和"wss protocol"是奇怪的词."WebSocket协议"是正确的词.WebSocket协议可以在纯HTTP连接(http)和安全HTTP连接(https)上使用.

请注意,WebSocket客户端和WebSocket服务器之间的通信是作为普通的HTTP协议启动的.要启动WebSocket通信,WebSocket客户端会将如下所示的请求发送到WebSocket服务器(这是RFC 6455,1.2 .协议概述的摘录).

GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Origin: http://example.com
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
Run Code Online (Sandbox Code Playgroud)

如您所见,这是一个普通的HTTP GET请求.WebSocket服务器可以在不安全的端口(http默认为80)或安全端口(https默认为443 )上等待此类请求.这取决于WebSocket服务器.

如果您使用的WebSocket服务器正在等待不安全端口上的请求,请传递ws给您正在使用的WebSocket客户端库.否则,如果WebSocket服务器正在等待安全端口上的请求,请传递wss给WebSocket客户端库.

的WebSocket客户端库的某些实现接受不但wswsshttphttps只是为了开发者的方便.

"WSS on http"是一个奇怪的词.另一方面,"httpS上的WebSocket协议"和"https上的WebSocket协议"是有意义的.

  • 我认为问题是:如果用http打开页面,我可以通过wss连接吗? (7认同)