为什么websocket协议使用与http不同的响应代码

时间:2015-09-29 16:56:46

标签: websocket

我想知道为什么websocket协议没有使用(比如设计师没有选择)相同的http响应代码(如200,404或403)等来传达响应?相反,有101意味着建立了沟通。

2 个答案:

答案 0 :(得分:5)

主要原因是101“交换协议”是一个合法的HTTP响应代码,表明对话尚未完成。我这样说是因为1xx代码不是成功代码(2xx),重定向(3xx)或错误代码(4xx)或服务器错误(5xx)。

似乎相对未知的101“交换协议”内置于HTTP中,以期协商其他协议。 WebSocket是一种使用该机制正式化的协议。

这提供了一种相当简洁的方法,可以在之后的WebSocket对话中预先分离HTTP对话(允许通过Internet上的开放端口遍历代理/中介)。巧妙的技巧是我们可以使用通过HTTP建立的连接启动双向WebSocket对话;通过在开放的Internet上建立HTTP连接的可靠性,这为WebSockets提供了更具普遍性的吸引力。

答案 1 :(得分:0)

WebSocket是一个与HTTP不同的协议。 101响应实际上是“切换协议”。 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html