参考:HTTP和RPC的区别_rpc调用和http调用的区别-CSDN博客
百度安全验证https://baijiahao.baidu.com/s?id=1761484023754288976&wfr=spider&for=pc
RPC则是一种通用的远程调用协议,它被用于在不同的计算机之间执行远程方法调用。RPC协议的主要目的是允许一个程序调用远程服务器上的函数或方法,就好像这些函数或方法是本地的一样。
HTTP是一种应用层协议,它主要用于在Web服务器和客户端之间传输HTML页面和其他Web资源。HTTP是一个请求-响应协议,它定义了客户端如何发送请求以及服务器如何响应请求。
-
通信模式
HTTP是一种无状态协议,它使用请求-响应模式进行通信。每次客户端发送请求时,服务器都会对其进行处理并返回响应,但这两个请求之间没有直接联系。这意味着在HTTP中,客户端和服务器之间的通信是不可靠的,需要使用其他机制来确保数据的完整性和一致性。
RPC通信则可以是有状态的,它使用类似本地方法调用的方式进行通信。客户端通过调用远程服务器上的方法来发送请求,服务器对该请求进行处理并返回响应。在整个过程中,客户端和服务器之间建立了一条持久的连接,这使得通信更加可靠。
-
数据传输格式
HTTP通常使用JSON或XML等文本格式来传输数据。这些格式具有良好的可读性和可扩展性,但是它们比二进制数据传输更慢,并且需要更多的网络带宽。
RPC则可以使用二进制协议来传输数据,例如Google开发的Protobuf(Protocol Buffers)和Apache Thrift等。这些协议具有更高的效率和更小的数据传输量,但它们的可读性和可扩展性较差。
-
应用场景
HTTP主要应用于Web应用程序,例如Web服务和浏览器。它可以使用各种语言和框架来开发和使用,因此它非常适合开发基于Web的应用程序。
RPC则主要用于分布式系统和互联网应用程序中。由于它具有高效、可靠、可扩展等特性,因此它被广泛应用于云计算、大数据等领域。
-
性能比较
由于HTTP是一种文本协议,它的性能相对较低,因为需要解析请求和响应头,并且文本格式的数据传输需要更多的带宽。而RPC协议使用二进制协议传输数据,因此具有更高的效率和更小的数据传输量。另外,在RPC中,通常会使用长连接,避免每次请求都建立新连接,这也有助于提高性能。