互联网协议 第11.1章 RESTful与RPC-两者区别 互联网协议 第11.1章 RESTful与RPC-两者区别

6小时前

一、RESTful 与 RPC 的区别

①、定义:

RESTful (Representational State Transfer):

  • 是一种基于 HTTP 协议的架构风格,利用 HTTP 方法(GET、POST、PUT、DELETE 等)来定义接口,进行资源的操作和状态的传递。

  • 主要关注资源的状态表示,操作资源的方式是通过统一的 URL 和 HTTP 动作来完成的。

RPC (Remote Procedure Call):

  • 是一种协议,通过网络调用远程服务器上的方法或函数,像调用本地方法一样来调用远程方法。

  • RPC 通常是基于方法调用的,不同的实现可以使用不同的协议(如 HTTP、gRPC、Thrift 等)。

②、使用方式:

RESTful :

  • 使用 HTTP 协议的标准方法:GET(获取资源)、POST(创建资源)、PUT(更新资源)、DELETE(删除资源)。

  • 通过 URL 作为资源的标识符(URI),并且通过 HTTP 动作来执行操作。

RPC:

  • 使用特定的远程调用协议,通常是通过自定义的消息格式(如 JSON、XML、Protocol Buffers)进行方法调用。

  • 调用方式类似于本地方法调用,通过指定的接口和方法名来调用远程服务。

③、数据格式:

RESTful :

  • 通常使用标准的数据格式,如 JSON、XML。

  • 重点在于资源的表示和状态转移。

RPC:

  • 数据格式可以是自定义的,依赖于具体的实现和协议,如 JSON-RPC、gRPC 使用 Protocol Buffers。

④、设计理念:

RESTful :

  • 以资源为中心,每个 URL 对应一个资源,操作资源时使用 HTTP 方法。

  • 强调无状态性(每个请求都应包含处理该请求所需的所有信息),以及资源的状态转移。

RPC:

  • 以功能或方法为中心,通过远程调用的方法名和参数来完成操作。

  • 方法调用通常会依赖于客户端和服务器之间的协议定义。

二、RESTful 的优点

①、简单直观:

RESTful API 使用标准的 HTTP 方法,使得接口设计和理解较为直观易懂,减少了复杂的协议要求。

②、无状态性:

RESTful API 的无状态性意味着每个请求都是独立的,服务器不需要存储客户端的状态,简化了服务器的设计和扩展性。

③、统一接口:

RESTful API 提供了统一的接口,所有操作都通过一致的 URL 和 HTTP 方法完成,简化了客户端与服务端的交互。

④、适应性强:

RESTful 可以使用多种数据格式,如 JSON、XML,适应不同的应用场景和需求。

⑤、缓存支持:

HTTP 协议本身支持缓存,RESTful API 可以利用这些缓存机制来提高性能和响应速度。

⑥、分层系统:

RESTful 架构支持分层系统,允许在客户端和服务器之间加入中间层(如负载均衡器、代理服务器),增强系统的扩展性和可维护性。

⑦、通过 URL 直接访问资源:

RESTful API 通过 URL 唯一标识资源,易于理解和使用。客户端可以直接通过 URL 操作资源,不需要关注底层实现细节。

总体来说,RESTful 适用于需要灵活、标准化接口的应用场景,特别是在 Web 和移动应用中,而 RPC 更适合需要高效、特定协议支持的场景,如内部服务间的通信。

阅读 12

互联网协议文章
带到手机上看