多角度对比Websocket和Http协议的区别

使用场景对比

HTTP

Http是一种应用层协议、同是是一种无状态协议,每次的请求都是独立的,Http经常用于网页传输、图片、文本等静态资源。

Websocket

Websocket是一种全双工通信,建立在单个TCP连接上,允许客户端和服务器之间进行双向通信,Websocket的设计旨在解决HTTP协议在实时性和交互方面的不足,广泛用于实时聊天、在线游戏、金融行业的实时数据等场景。

协议对比

HTTP

  • 协议类型:无状态、请求-响应型协议。
  • 通信方式:单向通信,客户端发送请求,服务器返回响应。
  • 持久连接:支持持久连接,通过Http Keep - Alive 头字段可以在一次连接中发送多个请求和响应

WebSocket

  • 协议类型:全双工通信协议。
  • 通信方式:双向通信,客户端和服务器都可以随时发送消息
  • 持久连接:基于单个TCP连接,保持连接状态,避免了每次通信都需要重新建立连接的开销。

通信性质对比

HTTP

  • 单向通信:请求-响应模式,客户端发送请求,服务器返回响应。
  • 轮询:实现实时性的方式之一是通过轮询,但效率低,增加网络负担

WebSocket

  • 双向通信:客户端和服务器可以随时发送消息,实现实时的双向通信。
  • 事件驱动:基于事件的模型,服务器或客户端可以通过事件触发实现及时的通信。

连接方式对比

HTTP

  • 连接建立: 每个请求都需要建立一个新的连接。
  • 连接关闭: 服务器在每个响应之后会关闭连接,客户端需要重新建立连接发送新的请求。

在这里插入图片描述

WebSocket

  • 连接建立: 通过 HTTP 协议建立初始连接,然后升级为 WebSocket 协议。建立连接后保持开放状态。
  • 连接关闭: 可以由客户端或服务器发起关闭连接请求,而不需要重新建立连接。
    在这里插入图片描述

性能对比

HTTP

  • 性能消耗:每次请求都需要重新建立连接,增加了资源消耗
  • 实时性:不适用于对实时性要求较高的应用,如在线游戏、实时聊天等。

WebSocket

  • 资源消耗:通过当TCP连接保持长连接,减少了资源消耗。
  • 实时性:适用于对实时性要求比较高的应用,具有低延迟和高吞吐量的特点

如何理解高吞吐量?
Websocket的高吞吐量主要体现在能够在一个持久连接上进行多次的数据传输,无需进行多次数据连接,消耗资源,这种低延迟的数据传输方式也进一步提高了网络传输数据的吞吐量。

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值