restful与rpc请求风格

restful简称rest:

          rest是以资源为中心,使用统一的接口url,使用get,post,put,patch,delete等方法来请求资源

rest风格原则条件:

  C/S结构,

       无状态:web应用程序最重要的rest原则是,客户端和服务的之间的交互在请求之间是无状态的。

        可以cache(缓存):无状态请求可以由任何可用服务器回答

  统一接口:在服务器端,应用程序状态和功能可以分为各种资源,资源是一个概念实体,它向客户端公开,所有资源都使用URI( Universal Resource Identifier 通用资源标识),所有资源都共享统一的接口,以便在客户端和服务端之间传输状态。

  分层系统:表示组件无法了解 它与之交互的中间层 以外的组件,通过将系统知识限制在单个层,可以限制整个系统的复杂性,促进底层独立性。

rpc:

  rpc即远程调用,以资源为中心,RPC是分布式架构的核心,按响应方式分为两种:

  同步调用:客户端调用服务方法,等待服务端返回结果或超时,再继续自己的操作

  异步调用:客户端把消息发送给中间件,不在等待服务端返回,直接继续自己的操作

  同步调用的实现方式有WebService和Rmi,WebService提供的服务基于web容器,底层是http协议,因而适用于不同语言异构系统见的调用。

  异步调用的实现方式JMS(JAVA Message Service)消息中间件

RPC与REST的区别:

  1.RPC通常使用TCP,UDP通信协议,二进制方式的通讯协议,json序列化

   REST通常使用http通讯协议,json序列化

  2.RPC以操作方法为中心

     REST以资源为中心

  3.RPC在扩展的时候不方便,因为当你需要加入新的功能的时候需要加入更多的方法,服务端去实现相应的方法,客户端去调用相应的方法

  而REST方便扩展,以资源为核心,例如 host/aa 这个请求路径,无论这个路径对应的服务怎么变化客户端无需关注和更新,因为客户端关注的是它的url

  使用聊天软件时用的是RPC风格的通讯,使用浏览器,通过http请求服务资源时用的是RES风格

原文:https://www.cnblogs.com/hello-/articles/9958943.html

      https://blog.csdn.net/u010547839/article/details/88422143

猜你喜欢

转载自www.cnblogs.com/HQ0422/p/13173814.html