Http和Rpc以及Http1.0/1.1/2.0之间有什么区别

http 1.0、1.1、2.0之间有什么区别

http 1.0

1.0:短连接
100张图需要100次tcp流程。

http 1.1

1.1:长连接
100张图需要1次tcp流程(一次完整的流程3次握手4次挥手)。

http 2.0

2.0:长连接+io多路复用模型(五大模型之一)
基于1.1的长连接的基础上,增加io多路复用模型。

Http和Rpc的区别

如果不是内部的接口调用,而是跨总服、跨公司或者是跨一些项目时,很可能会用到两个不同的东西,一个是Http,还有一个是Web Service。

如果是同一个公司的不同系统,上下流的关系,我们很可能会用到一些消息队列,比如说Kafka、RocketMQ等一系列的东西。

性能

主要差别在序列化和反序列化。

rpc通过thrift实现了二进制传输。
http使用的是json,序列化更消耗性能。

协议

rpc基于tcp也可以基于http
http只能是http

负载

rpc自带负载均衡
http需要自己搞,例如nginx等等

传输效率

rpc:可以自定义tcp协议,报文比较小。

http里面包含了很多头部信息,例如keepalivetime,refer等。

如果你基于http2.0协议,也可以减少报文,提高效率。

通知

rpc:自动通知。
http:事先通知,自行修改nginx配置或者其他负载均衡的配置。

总结

rpc适用于公司内部的调用,传输效率比较高,但是不建议去传一些文本、视频或者是图片。他默认自己也实现了负载。他适用于公司里面,大家都使用相同的技术栈。

如果我们的http适用于对外的这种环境,比如说我和其他项目组之间的、或者说我和其他公司之间的,像这些层面,我们可以考虑用到http或者是WebService。

如果是一个系统或者我们公司上下内部的,这种情况下我们可以通过kafka或者RocketMQ等来构造一个消息的传输。

像这种情况下,我们能做到第三方调用的接口实现起来比较简单,而且相对来说比较灵活。不局限于Java、Python,它是跨语言、跨平台的。

参考资料Http和Rpc以及Http1.0/1.1/2.0之间有什么区别

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值