当前位置:首页>维修大全>综合>

socket编程和web的区别(websocket与普通socket的区别)

socket编程和web的区别(websocket与普通socket的区别)

更新时间:2024-01-23 14:37:25

socket编程和web的区别

socket是TCP/IP进程间通讯的底层实现(当然,socket只是ipc中的一种,此外还有消息队列、信号灯、共享内存等很多手段)。

http(s)是在socket之上封装的一种上层通讯协议,其特点是:

1. 服务端监听通讯,被动提供服务;客户端主动向服务端发起连接请求,建立起通讯。

2. 每一次交互都是:客户端主动发起请求(request),服务端被动应答(response)。

3. 服务端不能主动向客户端推送数据。

4. 通信的数据是基于文本格式的。二进制数据(比如图片等)要利用base64等手段转换为文本后才能传输。

websocket也是在socket之上封装的一种上层通讯协议,其特点是:

1. websocket通讯的建立阶段是依赖于http协议的。最初的握手阶段是http协议,握手完成后就切换到websocket协议,并完全与http协议脱离了。

2. 建立通讯时,也是由客户端主动发起连接请求,服务端被动监听。

3. 通讯一旦建立连接后,通讯就是“全双工”模式了。也就是说服务端和客户端都能在任何时间自由得发送数据,非常适合服务端要主动推送实时数据的业务场景。

4. 交互模式不再是“请求-应答”模式,完全由开发者自行设计通讯协议。

5. 通信的数据是基于“帧(frame)”的,可以传输文本数据,也可以直接传输二进制数据,效率高。当然,开发者也就要考虑封包、拆包、编号等技术细节。

更多栏目