http是一种单向的、半双工的通信协议。http的单向是指只能由客户端主动发起连接请求,服务端无法主动发起。半双工是指,客户端和服务端都能发送和接收数据,但双方不能同时发送和接收数据,例如,在客户端向服务端发送数据的时候,服务端只能接收数据,不能发送数据,同时客户端也不能接收数据。
sse是一种单向的、单工的通信协议。sse的单向是指只能由服务端主动发起连接请求,客户端无法主动发起。sse的单工是指只能由服务端向客户端发送数据,客户端不能向服务端发送数据。
websocket是一种双向的,全双工的通信协议。双向是指客户端和服务端都能主动发起连接请求。全双工是指,客户端和服务端都能发送和接收数据,并且双方可以同时发送和接收数据,例如,在客户端向服务端发送数据的时候,服务端既能接收数据,也能发送数据,同时客户端也可以接收数据。
http广泛应用于通过浏览器访问网页等领域;websocket因为它双向,全双工的特性广泛应用于多人联机游戏等需要实时通信环境的领域;而sse则应用于股票行情和金融数据,实时统计数据展示等只需单向通信的领域,另外,sse基于http协议,不需要额外的设置,相比于websocket实现简单,部署成本小,还具有websocket不具备的自动断线重连等功能,所以,sse协议仍然在特定领域占据主要市场。