jinhai010:
错误点:
1、RPC 可以基于多种协议实现,其中 TCP/IP 是最常见的一种,但 RPC 本身并不局限于传输层,它跨越了网络层、传输层和应用层,因为它涉及到数据的封装、传输和解封装。
2、RPC(远程过程调用)协议和HTTP(超文本传输协议)都可以调用中立接口,但它们的方式和特点有所不同:
RPC协议:
RPC 协议允许程序通过网络对远程计算机上的程序或对象进行调用,就像调用本地程序一样。
RPC 通常隐藏了网络通信的细节,为开发者提供了一种类似于本地调用的抽象。
RPC 可以设计为支持中立接口,即不依赖于特定编程语言或平台的接口。
HTTP协议:
HTTP 本身是一个应用层协议,用于分布式、协作式、超媒体信息系统之间的通信。
通过HTTP协议,客户端可以向服务器发送请求并接收响应,服务器也可以推送信息给客户端。
HTTP 协议可以用于实现RPC风格的调用,例如通过HTTP请求发送JSON或XML格式的数据,并由服务器端处理这些请求。
REST(表述性状态传递)是一种基于HTTP协议的架构风格,它使用HTTP方法(如GET、POST、PUT、DELETE等)来实现中立的接口调用。
3、RPC通信协议:
RPC(远程过程调用)协议本身不是一种具体的网络通信协议,而是一种设计模式,允许程序像调用本地函数一样调用远程服务的函数或方法。RPC可以建立在不同的传输协议之上,包括TCP/IP。当RPC基于TCP实现时,确实可能使用长连接(Persistent Connection),以减少频繁建立和断开连接的开销。
HTTP协议:
HTTP协议本身并不限定连接的长短。在HTTP/1.0中,默认情况下每个请求/响应完成后连接就会关闭,但HTTP/1.0也支持持久连接(通过Connection: keep-alive头部)。HTTP/1.1及以后的版本默认支持持久连接,这意味着一个TCP连接可以被用来传输多个HTTP请求和响应,减少了连接建立和关闭的开销。
TCP三次握手:
TCP三次握手是TCP连接建立的标准过程,与使用的具体应用层协议(如RPC或HTTP)无关。无论是RPC还是HTTP,只要底层传输协议是TCP,那么在建立连接时都需要进行三次握手。
4、放不下了