美文网首页
HTTP和RPC比较

HTTP和RPC比较

作者: 雁阵惊寒_zhn | 来源:发表于2021-05-28 21:12 被阅读0次

什么是HTTP,什么是RPC

HTTP

超文本传送协议HTTP规定在HTTP客户和HTTP服务器之间的每次交互,都由一个ASCII码串构成的请求和一个类似的通用互联网扩充,即“类MIME(MIME-like)”的响应组成。HTTP报文通常都使用TCP连接传送。
HTTP基础可以参考HTTP协议——超文本传送协议

RPC

远程过程调用RPC(Remote Procedure Call)是一种计算机通信协议,允许一个节点调用另外一个节点的程序,而感觉上就像调用本地的程序一样。发送请求的节点是客户端(Client),处理请求并且执行返回结果的是服务端(Server)。
RPC主要包括两部分传输协议序列化协议,常用的Thrift既是传输协议,也是序列化协议。

HTTP vs RPC

一种说法RPC比HTTP更快

不单是效率这么简单。HTTP2.0逐渐被越来越多的网站应用,优化数据传输的效率,多路复用技术的应用也增加了服务器响应的速度。简单地说RPC比HTTP更快是片面,而且不准确的。

从两个方面比较

传输协议

HTTP报文通常都使用TCP连接传送。而RPC因企业内部自己使用可能存在多种不同的协议,例如gRPC使用HTTP2协议,dubbo使用自定义的TCP协议。

因为HTTP协议是通用协议,在自主性方面有先天不足,一些信息无论是否需要其实都需要传输,比如HTTP1.1的开始行、首部行和实体主体这些几乎都是不可以缺少的,而且实体主体的编码格式也需要统一,由于诸多的限制,比起规范更加宽松的RPC传输协议自然传输效率更可能相对低一些。从这方面看HTTP更具有普适性。

同样,规范更加宽松的RPC可以面向服务封装自定义的一些特性,例如适时熔断,服务发现等等,另外根据需要也会做一些效率和可用性上的优化。

序列化协议

同样地,在序列化协议上,HTTP也因为具有普适性而不如RPC的可操作性强。

总结

在对外提供接口时,因为要具有大家都认可的统一的协议,因为普适性,HTTP是首选。对内部提供接口时,良好的面向服务封装的RPC更具有竞争力,可以针对服务进行可用性和效率的优化,包括业务需要上的服务发现、熔断等;也包括单纯技术上的序列化的优化提高传输效率。

相关文章

  • HTTP和RPC比较

    什么是HTTP,什么是RPC HTTP 超文本传送协议HTTP规定在HTTP客户和HTTP服务器之间的每次交互,都...

  • rpc和HTTP

    参考文章:https://www.cnblogs.com/helloworldmybokeyuan/p/11626...

  • TCP RPC和HTTP RPC

    最近在了解SOA和微服务相关的东西,服务和服务之间都避免不了通信,一般通信分为同步的和异步的。异步的基本都是用消息...

  • RPC笔记整理

    什么是RPC 例如,HTTP+Restful规范+序列化与反序列化,构成一个完整的远程调用方案,再和RPC进行比较...

  • RPC和HTTP服务对比

    RPC和HTTP服务对比 RPC(即Remote Procedure Call,远程过程调用), RPC主要是基于...

  • 关于rpc和http

    公司线上模块间传输用的都是rpc(Remote Procedure Call)远程过程调用,测试工具都是http,...

  • RPC和HTTP的区别

    RPC调用和HTTP调用 1. 协议 RPC是通常基于TCP/IP协议 HTTP基于HTTP协议 2. 效率 RP...

  • 了解一下RPC,为何诞生RPC,和HTTP有什么不同?

    了解一下RPC,为何诞生RPC,和HTTP有什么不同? 开篇提问 什么是RPC? 为什么需要RPC,用来解决什么问...

  • 关于服务发现的一点理解

    上一篇讲解后端为什么要用rpc进行通信而不是http的文章中,提到了rpc相比较http,除了省流量外,其实就是在...

  • 分布式RPC框架

    RPC是什么?为什么要使用RPC?开源的RPC框架有哪些?它有什么优势?基于TCP和HTTP协议的RPC调用有什么...

网友评论

      本文标题:HTTP和RPC比较

      本文链接:https://www.haomeiwen.com/subject/uudgqltx.html