怎样用通俗的语言解释REST,以及RESTful?

可怕的学术式解释

了解了什么是REST,我们再看看RESTful的实现。最近,使用 RPC 样式架构构建的基于 SOAP 的 Web 服务成为实现 SOA 最常用的方法。RPC 样式的 Web 服务客户端将一个装满数据的信封(包括方法和参数信息)通过 HTTP 发送到服务器。服务器打开信封并使用传入参数执行指定的方法。方法的结果打包到一个信封并作为响应发回客户端。客户端收到响应并打开信封。每个对象都有自己独特的方法以及仅公开一个 URI 的 RPC 样式 Web 服务,URI 表示单个端点。它忽略 HTTP 的大部分特性且仅支持 POST 方法。

一头雾水有木有?

REST的定义

直译

  • REpresentational State Transfer :表现层状态转移
  • 更全的术语:Resource Representational State Transfer(资源在网络中以某种形式进行状态转移)
  • Resource(资源):即数据
  • Representational(表现形式):比如用JSON,XML,JPEG等
  • State Transfer(状态变化):通过HTTP动词实现

大咖描述的REST

  • URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。

牛人给的解释

  1. REST描述的是在网络中client和server的一种交互形式。REST本身不实用,实用的是如何设计RESTful API(REST风格的网络接口)。
  2. Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。用HTTP协议里的动词来实现资源的添加,修改,删除等操作。
    例如:


    怎样用通俗的语言解释REST,以及RESTful?_第1张图片
    Paste_Image.png
  • 保证 HEAD 和 GET 方法是安全的,不会对资源状态有所改变(污染,不推荐:GET /deleteProduct?id=1
  • 资源的地址推荐用嵌套结构,如:GET /friends/10375923/profile
  • 警惕返回结果的大小。如果过大,及时进行分页(pagination)或者加入限制(limit)。HTTP协议支持分页(Pagination)操作,在Header中使用 Link 即可。
  • 使用正确的HTTP Status Code表示访问状态
  • 在返回结果用明确易懂的文本
  • 考虑安全性:尽量使用https
  1. 为什么要使用RESTful API
  • RESTful可以通过一套统一的接口为 Web,iOS和Android提供服务

转载于:https://www.zhihu.com/question/28557115

————
前端·tj
纸上得来终觉浅,绝知此事要躬行

你可能感兴趣的:(怎样用通俗的语言解释REST,以及RESTful?)