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

Abh*_*hra 0 websocket

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

小智 5

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

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

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