RPC和HTTP的区别

RPC

全称Remote Produce Call(远程过程调用),自定义数据格式,基于原生TCP实现,速度快,效率高。

HTTP

http是一种网络传输协议,基于TCP实现,规定了数据的传输格式。客户端浏览器和服务端通信基本都采用http协议

相同点

底层通信都是基于socket,都可实现服务远程调用服务

本质区别

  1. rpc是方法,http是协议,也可以说http是rpc的一种实现
  2. rpc在传输层,http在应用层
  3. rpc和编程语言有关,要求服务调用方和服务提供方使用统一的rpc框架。http无需关注编程语言,只需遵循rest规范即可,通用性强,但消息封装较为臃肿

其他区别

rpc一般是和服务相关的,成熟的rpc库相对于http容器,更多的是封装了"服务发现",“负载均衡”,"熔断降级"等高级特性,可以理解rpc是面向服务的更高级的封装。如果把一个http servlet容器上封装一层服务发现和函数代理调用,那它就已经可以做一个rpc框架了。因为良好的rpc调用是面向服务的封装,针对服务的可用性和效率等都做了优化,单纯使用http调用则缺少了这些特性。

你可能感兴趣的:(rpc,http,网络)