WebSocket,Socket,WebService与HTTP之间的关系

一:WebSocket与HTTP的关系

相同点

  • 1. 都是一样基于TCP的,都是可靠性传输协议。
  • 2. 都是应用层协议。

不同点

  • 1. WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息。HTTP是单向的。
  • 2. WebSocket是需要握手进行建立连接的。
  • 3. HTTP的url使用"http//"或"https//"开头;Websocket的url使用"ws//"开头

联系

WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的。

二:WebSocket与Socket的关系

  1. Socket其实并不是一个协议,而是为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口。
  2. 当两台主机通信时,必须通过Socket连接,Socket则利用TCP/IP协议建立TCP连接。TCP连接则更依靠于底层的IP协议,IP协议的连接则依赖于链路层等更低层次。socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。
  3. HTTP和Socket什么关系,WebSocket和Socket就是什么关系。

区别

1.WebSocket:

  1.  WebSocket则是一个典型的应用层协议。
  2. websocket通讯的建立阶段是依赖于http协议的。最初的握手阶段是http协议,握手完成后就切换到websocket协议,并完全与http协议脱离了。
  3. 建立通讯时,也是由客户端主动发起连接请求,服务端被动监听。
  4. 通讯一旦建立连接后,通讯就是“全双工”模式了。也就是说服务端和客户端都能在任何时间自由得发送数据,非常适合服务端要主动推送实时数据的业务场景。
  5. 交互模式不再是“请求-应答”模式,完全由开发者自行设计通讯协议。
  6. 通信的数据是基于“帧(frame)”的,可以传输文本数据,也可以直接传输二进制数据,效率高。当然,开发者也就要考虑封包、拆包、编号等技术细节。

2.Socket:

  1.   Socket是传输控制层的一组接口
  2.   服务端监听通讯,被动提供服务;客户端主动向服务端发起连接请求,建立起通讯。
  3.   每一次交互都是:客户端主动发起请求(request),服务端被动应答(response)。
  4.   服务端不能主动向客户端推送数据。
  5.   通信的数据是基于文本格式的。二进制数据(比如图片等)要利用base64等手段转换为文本后才能传输。

三:WebSocket、HTTP 与 TCP

从上面可以看出,HTTP、WebSocket 等应用层协议,都是基于 TCP 协议来传输数据的。我们可以把这些高级协议理解成对 TCP 的封装。

TPC/IP协议是传输层协议,主要解决数据 如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值