WebSocket與Socket、HTTP、TCP的粗略整理
1.什麼是WebSocket?
2.什麼是Socket?
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
Socket其实并不是一个协议。它工作在 OSI 模型会话层(第5层),是为了方便大家直接使用更底层协议(一般是TCP或UDP)而存在的一个抽象层。Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
3.什麼是HTTP?
http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。
HTTP 协议有一个缺陷:通信只能由客户端发起,做不到服务器主动向客户端推送信息。
4.什麼是TCP?
TCP(Transmission Control Protocol)是网络通信模型OSI7层网络模型中,第四层传输层协议,主要作用是数据传输,TCP 主要确保不同节点之间的端到端数据传输。
5.WebSocket和HTTP的異同點
同:
- 建立在TCP之上,通过TCP协议来传输数据。
- 都是可靠性传输协议。
- 都是应用层协议。
異:
- WebSocket是HTML5中的协议,支持持久连接,HTTP不支持持久连接,数据格式比较轻量,性能开销小,通信高效,以发送文本,也可以发送二进制数据。
- HTTP是单向协议,只能由客户端发起,做不到服务器主动向客户端推送信息。
6.WebSocket和Socket
Socket其实并不是一个协议,而是为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口。
当两台主机通信时,必须通过Socket连接,Socket则利用TCP/IP协议建立TCP连接。TCP连接则更依靠于底层的IP协议,IP协议的连接则依赖于链路层等更低层次。
Socket是传输控制层协议,WebSocket是应用层协议。
7.WebSocket HTTP和TCP/IP
WebSocket和HTTP一样,都是建立在TCP之上,通过TCP来传输数据,可以把这些高级协议理解成对 TCP 的封装。
8.Socket和TCP/IP
Socket是对TCP/IP协议的封装,像创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。
注:本文主要用於個人學習與總結,如有錯誤期待各位大佬的指導!