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



我想知道为什么websocket协议没有使用(说设计师没有选择)相同的http响应代码(如200,404或403)等来传达响应?相反,有101表示通信已经建立。

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

似乎相对不为人知的101"交换协议"是为了协商其他协议而内置到HTTP中的。WebSocket就是这样一种协议,它使用了这种机制。

这提供了一种相当干净的方法,将HTTP会话(允许通过Internet上的开放端口遍历代理/中介)与之后的WebSocket会话分开。巧妙的技巧是,我们可以使用在HTTP上建立的连接启动双向WebSocket会话;这使得WebSockets具有更普遍的吸引力,因为它与在开放的Internet上建立HTTP连接一样可靠。

WebSocket是一个独立于HTTP的协议。101响应实际上是"交换协议"。http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

相关内容

  • 没有找到相关文章

最新更新