几个网络通信协议的比较

Https

使用 Https 能从协议上解决安全问题。全面升级到 Https 是目前业界的趋势。 下图是 Https 的处理过程简图:



WebSocket 协议

Http 协议是一种被动式的处理消息的方式。 app 很多场景下需要由服务器主动将数据推送到客户端。 使用 WS 协议维持客户端到服务器的长连接是一种很好的解决方案。 目前在 IM 或直播的场景下应用b
比较广泛。



WS 请求


WS 响应

上面两张图为 ws 协议请求和响应。

  1. 客户端发起一个 http 的 get 请求。
  2. 请求头中表示链接方式为升级(Connection: Upgrade) 到 websocket协议(Upgrade: websocket)
  3. Sec-WebSocket-Key: 为客户端生成的随机字符串(掩码值)
  4. Sec-WebSocket-Version: 13 表示使用 ws 1.3 版本。
  5. 响应码 101 表示协议切换成功, 协议升级到 websocket (Upgrade:websocket)

在看一下 ws 协议下的每帧数据组成:



每帧数据都包含 2byte 的头信息。
FIN 表示是否为最后一帧
RSV1/2/3 为扩展字段。客户端与服务器可以通过约定这几个字段的值实现协议上的附加操作, 比如是否开启数据压缩。
OP Code 为每一帧的操作类型。 比如当前帧是操作帧还是数据帧
MASK 0/1 表示是否设置了掩码
LENGTH 为数据包长度

在 2byte 头信息之后带上整个帧的真实数据。

Http2 协议

下一代 http 协议。 解决了诸多 http 下的问题, 被越来越广泛的应用。 我总结的也不太好, 详细参见另一篇博客HTTP 2.0的那些事

App 下的理想网络模型特点

App 的网络场景要比 pc 上复杂很多, 也不稳定的多。 对于 app 来说, 理想的网络模型特点应该要有:

  • 低延时
  • 安全
  • 双向数据通道

在不同的场景下使用不同的工具去解决问题, 重点是要熟悉每种协议的特点,以及如何使用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值