WebSocket 和 Socket 的简单关系

使用 websocket 的过程中,对它的概念产生了模糊,随即整理下,以便今后回顾。


WebSocket vs Socket

  • Socket 是操作系统提供的一组网络编程接口(API),用于实现 TCP 或 UDP 协议通信,属于一种 编程接口抽象,工作在 传输层之上,为开发者提供对网络协议栈的访问能力。
  • WebSocket 是一种基于 TCP 的 应用层协议,在连接建立初期通过 HTTP 协议进行握手,成功建立连接后,在这个 TCP 连接上进行全双工通信,它的设计目的是为了实现浏览器与服务器之间的 持久化、低开销、双向通信

对比

对比项 Socket WebSocket
层级位置 抽象于传输层之上 应用层协议
基础协议 TCP(或 UDP) TCP
连接方式 手动创建、管理连接 通过 HTTP 握手升级协议后建立
是否跨平台 是,且广泛用于浏览器环境
主要用途 网络通信底层接口(如 C/S 架构) 浏览器与服务器实时通信(如聊天、游戏)
使用语言 多语言支持(C/C++/Java/Python 等) 多用于 Web 环境(JS/Node.js/Python 等)

基于 TCP 的应用层协议

协议 说明
WebSocket 基于 TCP 的双向通信协议,先通过 HTTP/HTTPS 握手,然后升级到 TCP 连接
HTTP 万维网传输协议
HTTPS HTTP + TLS 加密
FTP 传统文件传输协议
SFTP 通过 SSH 实现的安全文件传输协议
SSH 安全远程登录协议
SMTP 邮件发送协议
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容