WebSocket、SSE(Server-Sent Events)、HTTP 和 Axios关系总结

WebSocket、SSE(Server-Sent Events)、HTTP 和 Axios 在 Web 开发中扮演着不同的角色,它们之间的关系可以概括如下:

Http

HTTP(超文本传输协议)是一种用于在客户端和服务器之间传输数据的应用层协议。它是 Web 开发的基础,用于请求网页、图像、文件等资源。

‌WebSocket‌

WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。与 HTTP 不同,WebSocket 允许服务器和客户端之间建立持久的连接,并可以在任意时刻相互发送数据。它通常用于需要实时双向通信的应用场景,如在线聊天、实时数据推送等。

‌SSE(Server-Sent Events)

SSE 是一种用于实现服务器主动向客户端推送数据的技术。与 WebSocket 类似,SSE 也允许服务器向客户端发送实时更新的数据。但不同的是,SSE 是单向通信协议,只能由服务器向客户端推送数据,而客户端不能主动向服务器发送数据。SSE 基于 HTTP 协议,利用了其长连接特性。

‌Axios‌

Axios 是一个基于 Promise 的 HTTP 客户端库,用于发送 HTTP 请求。它可以在浏览器和 Node.js 环境中使用,提供了一系列简洁的 API 来发送不同类型的 HTTP 请求(如 GET、POST、PUT、DELETE 等)。虽然 Axios 本身不直接支持 WebSocket 或 SSE,但它可以用于与 HTTP 服务器进行通信,包括在 WebSocket 握手阶段发送 HTTP 请求。

关系总结

‌HTTP‌ 是 Web 开发的基础协议,WebSocket 和 SSE 都基于 HTTP 协议进行通信,但在连接建立后的数据传输方式上有所不同。

‌WebSocket‌ 是一种全双工通信协议,适用于需要实时双向通信的应用场景。

‌SSE‌ 是一种单向通信协议,适用于需要服务器主动向客户端推送数据的场景,但客户端不能主动发送数据。

‌Axios‌ 是一个 HTTP 客户端库,用于发送 HTTP 请求。它本身不直接支持 WebSocket 或 SSE,但可以用于与 HTTP 服务器进行通信,包括在 WebSocket 握手阶段发送 HTTP 请求。

在实际开发中,你可以根据需要选择使用 WebSocket、SSE 或 HTTP(通过 Axios 或其他 HTTP 客户端库)来实现特定的通信需求。例如,如果你需要实时双向通信,可以选择 WebSocket;如果你只需要服务器向客户端推送数据,而客户端不需要主动发送数据,可以选择 SSE;如果你需要进行传统的请求-响应通信,可以选择 HTTP(通过 Axios 或其他 HTTP 客户端库)。

相关推荐
碳基修炼3 小时前
排查记:本地 devServer 是 http,浏览器却把 302 重定向升级成了 https
前端·http
那年窗外下的雪.10 小时前
第 02 天:Linux 权限、inode、目录项与链接
学习·http
烟雨江南78511 小时前
会议语音识别私有化部署方案:音频不出内网,如何接入现有会议系统
人工智能·websocket·音视频·语音识别·ai客服
那年窗外下的雪.11 小时前
AIDC 学习日志|第 27 天|EVPN 多归属收敛时间线与 Leaf2 接管验证
网络协议·学习·http·tcpdump
j7~12 小时前
【Linux】三十八.C++ 手写 HTTP 服务器:裸 socket + fork 多进程,从 HTTP 报文解析到浏览器打开网页
linux·网络·网络协议·学习·http·网络编程
小则又沐风a13 小时前
深入理解TCP协议----滑动窗口,流量控制
linux·网络协议·tcp
captain3761 天前
网络原理(9)-数据链路层
java·网络协议·java-ee
yi碗汤园1 天前
MQTT消息队列遥测传输协议
网络·网络协议·unity
花间相见1 天前
【后端开发|网络编程】—— 五种实时通信方案全解析:短轮询、长轮询、SSE、MQTT、WebSocket
后端·网络协议