跳到主要内容

比较 TCPHTTP 和 WebSocket 三种协议

· 阅读需 1 分钟
素明诚
Full stack development
特性 / 协议TCPHTTPWebSocket
是否基于连接是,是一种面向连接的协议是,但默认每次请求都需要重新建立连接(HTTP/1.1 引入了 keep-alive 机制以复用连接)是,一次握手后建立持久连接
可靠性是,通过 ACK、序列号、重传机制等保证是,因为基于 TCP是,因为基于 TCP
通信方式全双工半双工,客户端发送请求后等待并接收响应全双工
数据流向双向单向,从客户端发送请求到服务端响应双向,可以从客户端到服务端,也可以从服务端到客户端
头部信息无,仅在握手时有少量开销每次请求和响应都有头部信息,可能导致额外开销握手时有开销,但之后数据传输的头部开销非常小
使用场景低级别的网络通信,不特定于应用场景网页请求,API 请求,短连接实时或需要服务器主动推送的应用,如聊天应用、在线游戏等