【socket】一词的本意即是【插座】的意思,我们日常编程中使用到WebSocket延用的便是【插座】这个本意 Socket大家都很常用,但是Socket到底是什么,为什么用【插座】一词来表示WebSocket,却很少有人能将明白
其实答案讲出来也很简单
- TCP/UDP连接就像一条电线,两端各连接着诸多设备(程序/代码模块)
- 不管两端接入了多少设备,它们只有插入插座,才能通过电线(TCP/UDP)彼此相连
- 插座是设备和电线连接的接口,而WebSocket扮演的就是这个插座,所以它叫【socket】
- 专业点来讲,WebSocket就是程序和TCP/UDP协议连接的接口,它并不是网络协议,TCP/UDP才是网络协议,WebSocket只是一套接口,规定如何发送,接收,处理TCP/UDP协议上的数据
- 对于很多不太了解原理的程序员来说,可能日常开发只涉及业务逻辑,经常用的只有Http协议和Websocket,并不清楚TCP/UDP协议,以及这些网络协议之间的关系
- 其实它们是网络协议不同层面上的东西,可以共同合作,并不是多选一的关系,一个网络连接,它可能既用到了HTTP协议,也用到TCP协议,还用到了WebSocket
- TCP/UDP是传输层协议,它负责字节数据的传输和安全性保证。HTTP是应用层协议,它负责将字节转化为一定格式的、应用可识别的数据。而WebSocket则是处理最终应用层收到的有效数据。所以经常可以看到,WebSocket的地址是以http开头的,而HTTP协议又是建立在TCP协议之上的,它在传输层通过TCP来传输