HTTP协议和RPC协议

因为TCP协议是以字节流的方式传输,对于纯TCP连接来说,发送的数据在底层是01的字节流会出现接收端分不清发送端发送的数据,到底是夏洛+特烦恼还是夏洛特+烦恼,并没有边界的区分

没有边界之分就需要向消息体前加上消息头,消息头里面就是添加的规则,而这些规则就是协议。
所以基于TCP,衍生出了非常多的协议,比如HTTP和RPC,这些协议都会定义一套属于自己的协议解析规则。

RPC,远程过程调用,本身并不是一个具体的协议,而是一种调用方式
RPC可以像调用本地方法那样调用远端方法

HTTP和RPC的区别?

  • 服务发现
    • HTTP是通过DNS解析来获取对应的IP地址
    • RPC是由专门的中间服务去保存服务器和IP信息
  • 底层连接方式
    • HTTP是会复用长连接
    • RPC协议还会再建一个连接池,在连接数大时候,建立多条连接池放在池内,要发数据时就从池内取一条连接即可,用完放回去,下次还能复用
  • 传输的内容
    • HTTP一般是通过json来序列化数据
    • RPC是采用体积更小的protobuf或其他序列化协议去保存结构体数据,不用向HTTP那样考虑浏览器行为,比如一些状态码

TCP是传输层协议,而基于TCP造出来的HTTP和各类RPC协议,他们都只是定义了不同消息格式的应用层协议而已

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值