WSS适用于http?

时间:2015-12-30 15:07:39

标签: http ssl web websocket

有可能在http上使用wss协议吗?我已经在一个与http合作的论坛上阅读了,但wss只适用于https? 这是真的吗?

因为我试图在我的whost on localhost上测试它,但是没有工作

1 个答案:

答案 0 :(得分:13)

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

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

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

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

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

WebSocket客户端库的某些实现不仅仅接受wswss,还接受httphttps仅适用于开发人员和#{1}}。便利性。

" WSS on http"是一个奇怪的词。另一方面,http"" WebSocket协议在http"和#34; https"上的WebSocket协议有道理。