
前言
这两天在和同学谈到RPC、RESTful时候发现自己对这两者并不是很理解,于是查阅了网上相关资料加上自己的理解写下本篇文章以加深印象,由于本人水平有限,若对这两者的理解有不妥之处望指出。
什么是REST和RESTful
在认识RESTful之前,我们先科普一下REST。
REST
REST即Representational State Transfer的缩写,是基于HTTP协议之上的一组约束和属性,翻译过来是表现层状态转移。REST是一种设计风格(并非一种标准),描述的是在网络中Client和Server的一种交互形式,目的是便于不同的软件/程序在网络中互相传递消息。按照我的理解:我们通过URI定位到服务器上的资源(例如文本、图片、服务),然后对资源进行某种操作(CRUD)并且返回足够的信息描述服务器的状态(比如:状态码)让客户端知道如何处理,资源传递给客户端并且以某种形式表现(比如JSON、HTML、XML、PNG等)出来,而REST则是将URI的命名风格、对资源操作的实现方式、操作之后返回什么信息和资源以哪种形式表现出来等总结成了一种设计风格,让大家都使用这种设计风格去实现这些设计,当然REST的设计风格不止我指出的这几个,只是这几个是要点。
REST设计的风格遵循以下几点:
- 利用HTTP方法让接口统一化
REST充分利用HTTP自身的GET、POST、PUT、DELETE的方法实现接口的统一化,比如对同一个资源进行CRUD操作时:
GET /posts 获取文章