rpc在7层模型中的会话层,http在应用层,这导致了两者的根本目的就不同
rpc的作用就是实现远程调用网络主机上的函数,而http的作用有很多,根本作用是使用http在浏览器和服务器之间传输文档
http和rpc最大的区别还是在传输协议上
http协议(http1.1)中一个http包由head和body组成,显然我们序列化之后的文件应该放在body中,但http协议的头文件有很多冗余信息,降低了信道传输速率
一般rpc使用自定义的tcp协议,一般只加上了包序号,包名称和包长
但grpc使用了http2.0协议,因为http2.0协议解决了这些问题,优化了编码效率
使用http完全可以调用另一个应用的函数,只要这个函数暴露并和一个url对应,我们就可以用get或post上传参数并收到结果
但rpc不止有传包这一通信过程还有如下功能
超时处理,服务发现,熔断,动态代理等等