Websocket
什么是websocket
websocket和http一样,是应用层协议,只不过与http区别的是,http是无状态的,而websocket是全双工有状态的长连接,客户端服务端一旦建立连接便可以持续双向通信。
websocket优点
不再需要http轮询,大量减少服务端资源消耗,每次http连接都需要经过tcp三次握手四次挥手才可以传输数据,这个过程服务端会分配端口与socket半开套接字资源,轮询势必会造成资源浪费,而Webscoket一旦建立,一次建立便可以持续传输数据
websocket如何建立
webscoket通过首次发送http请求,在请求头携带conection:upgrade,告知服务端要进行协议升级,通过upgrade:websocket告知服务器要升级的协议是websocket协议,同时,浏览器随机生成一个哈希值,通过: Sec-WebSocket-Key携带过去,服务器收到请求后,得知这是一个Webscoket协议请求,同样返回connection、upgrade,以及Status Code:101 Switching Protocols协议转换、Sec-WebSocket-Accep同意连接,这时协议升级为websocket,可以进行双向传输