【你问我答】restful跟Json、RPC有什么不同?

问题描述:

restful规范了哪些东西,跟Json、RPC有什么不同?

回答有奖:

选取一位认真回答问题的牛友,赠送200牛币!
▶回答尽量有自己的思考,不要单纯的只是复制粘贴定理定义,或者他人blog哦~

你问我答问题汇总:点击进入
关注你问我答栏目:点击关注

你问我答 - 答问题,成大佬,拿牛币!
你问我答是牛客新栏目,每周1期几个面试中真实遇到的问题,
牛友在问题贴下留下自己的知识,经验与见解,
帮助更多牛友了解更多技术相关知识!

#悬赏##Java##面试题目#
全部评论
restful 就是定义了一种url请求的格式,是一种编程风格,get 是请求数据,put 添加数据,post 更新数据,delete删除数据。json的话是一种数据格式,类似字符串数组以kv形式存储数据的。rpc是一种远程调用服务框架,比如说有两个服务器a和b各自部署了一个一个应用,由于不在一个内存空间不能直接调用,需要通过网络来调用,rpc不是具体技术是整个网络远程调用的过程。
1 回复
分享
发布于 2020-05-20 10:40
使用同一个 URL ,通过约定不同的 HTTP 方法来实施不同的业务,这就是 RESTful 风格所做的事情了。 Restful风格特点: 1. 简单、轻量。 RESTful架构完全基于HTTP协议,充分利用HTTP协议的特点,通过统一接口,使用GET、POST、PATCH、PUT、DELETE等HTTP动词来区分获取、新增、更新和删除等不同操作。 2. 面向资源,一目了然,具有自解释性。 在RESTful架构中一切都是资源,用户通过URL访问网站就是请求网站服务器上的资源。每一个URI标示了一个唯一的资源。服务器对每个请求的响应中,不仅包含有用户需要的数据,还包含有与请求相关的其他信息,让客户端不用查看文档也大概知道下一步如何操作,如在header中增加Link头告诉客户端怎么访问下一页和最后一页的记录。 3.数据描述简单,一般以XML,JSON做数据交换(现在主要使用JSON)。 所以相对于传统的接口调用方式,使用RESTful架构的API,还是有很大优势的。 所以Json是一种数据描述的格式。 RPC则是远程调用,RPC是基于TCP实现的,RESTFUL是基于HTTP来实现的。因为HTTP封装的数据量更多所以数据传输量更大,所以RPC的传输速度是比RESTFUL更快的。 一般来说可以网关和外界的数据传输使用RESTFUL,微服务内部的各模块之间使用RPC。 RESTFUL的API的设计上是面向资源的,对于同一资源的获取、传输、修改可以使用GET、POST、PUT来对同一个URL进行区别也就是使用同一个 URL ,通过约定不同的 HTTP 方法来实施不同的业务,而RPC通常把动词直接体现在URL上
点赞 回复
分享
发布于 2020-05-20 11:01
饿了么
校招火热招聘中
官网直投
使用 RPC 样式架构构建的基于 SOAP 的 Web 服务成为实现 SOA 最常用的方法。RPC 样式的 Web 服务客户端将一个装满数据的信封(包括方法和参数信息)通过 HTTP 发送到服务器。服务器打开信封并使用传入参数执行指定的方法。方法的结果打包到一个信封并作为响应发回客户端。客户端收到响应并打开信封。每个对象都有自己独特的方法以及仅公开一个 URI 的 RPC 样式 Web 服务,URI 表示单个端点。它忽略 HTTP 的大部分特性且仅支持 POST 方法。 由于轻量级以及通过 HTTP 直接传输数据的特性,Web 服务的 RESTful 方法已经成为最常见的替代方法。可以使用各种语言(比如 Java 程序、Perl、Ruby、Python、PHP 和 Javascript[包括 Ajax])实现客户端。RESTful Web 服务通常可以通过自动客户端或代表用户的应用程序访问。但是,这种服务的简便性让用户能够与之直接交互,使用它们的 Web 浏览器构建一个 GET URL 并读取返回的内容。 在 REST 样式的 Web 服务中,每个资源都有一个地址。资源本身都是方法调用的目标,方法列表对所有资源都是一样的。这些方法都是标准方法,包括 HTTP GET、POST、PUT、DELETE,还可能包括 HEAD 和 OPTIONS。 在 RPC 样式的架构中,关注点在于方法,而在 REST 样式的架构中,关注点在于资源 —— 将使用标准方法检索并操作信息片段(使用表示的形式)。资源表示形式在表示形式中使用超链接互联。 Leonard Richardson 和 Sam Ruby 在他们的著作 RESTful Web Services 中引入了术语 REST-RPC 混合架构。REST-RPC 混合 Web 服务不使用信封包装方法、参数和数据,而是直接通过 HTTP 传输数据,这与 REST 样式的 Web 服务是类似的。但是它不使用标准的 HTTP 方法操作资源。它在 HTTP 请求的 URI 部分存储方法信息。好几个知名的 Web 服务,比如 Yahoo 的 Flickr API 和 Delicious API 都使用这种混合架构
点赞 回复
分享
发布于 2020-05-20 15:35

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务