1. 来源与出处
WebSocket
来自 H5,是 H5 新增的众多规范和 API 中的一个。HTTP
协议就只有 HTTP
协议。
2. 二者的关联
WebSocket
协议基于 TCP
协议(WebSocket
、HTTP
协议都基于 TCP
协议,TCP
协议相当于火车,WebSocket
、HTTP
相当于火车里的两个人),WebSocket
需要借助 HTTP
先建立连接,即客户端发送转换协议的请求,服务器转换协议并响应101,接下来再发送的请求 / 响应既是基于 Websocket
协议。
3. WebSocket
建立的是持久连接,而 HTTP
即使是1.1,建立的也只是长连接
持久连接在连接建立后,只要不主动关闭,连接就可以始终保持。而长连接就必须依赖心跳包等维持连接。长连接借助长轮询实现。
4. 长轮询与短轮询的区别
短轮询在服务器没有新数据时,响应一个表示空的数据,有新数据就响应新数据,不论怎样都要立即响应。长轮询在没有新数据时,一直处于 pending 状态,直到有新数据才响应。然后开启下一次请求响应。