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、放不下了
java中 1<<30 什么意思 (转载)
RPC协议