1.什么叫WebSocket?
WebSocket是一个在HTML5下基于TCP的全双工通信协议
它是一个比Http协议更节省网络资源开销的持久化协议
2.WebSocket的应用场景
WebSocket 非常适合需要低延迟、实时双向通信的应用场景。常见的应用包括:
实时聊天应用:如在线客服、社交媒体聊天功能。
在线游戏:需要实时互动的多人游戏。
实时通知和更新:如股票行情、体育比分、新闻推送等。
协作应用:如文档共同编辑、实时数据分析工具。
3.WebSocket的实现原理
首先是由客户端发起Http请求进行三次挥手,请求头中添加 Upgrade
字段来完成,建立起TCP链接
然后服务器收到客户端的请求后,同样采取Http协议返回数据,通过检查请求头的 Upgrade
和 Connection
字段来确认是否支持 WebSocket 协议。如果支持,服务器会返回 101 状态码,表示协议切换成功。
客户端接收到后,就会去将客户端和服务器之间的链接升级成WebSocket协议
4.WebSocket和HTTP之间的区别
HTTP是单向的,在长连接中,每一次请求和每一次响应都会去携带大量的请求头
WebSocket是双向的,在第一次通过HTTP协议建立了TCP全双工通信协议后,每次服务器和浏览器之间交互就不用去携带请求头进行交互了,减少了网络开销和提高了运行效率
WebSocket是需要浏览器和服务器握手进行链接
HTTP是浏览器像服务器发起的链接,服务器没有预先准备
5.WebSocket协议解决的问题
传统的 HTTP 协议是基于请求-响应模型的,客户端发送请求,服务器处理请求后再发送响应。在需要实时数据更新的场景中,这种方式效率较低,因为客户端必须频繁地轮询服务器以获取最新数据。WebSocket 通过在客户端和服务器之间保持一个长连接,使得服务器可以在有新数据时立即推送给客户端,无需客户端频繁地发起请求。