rest是面向资源的,通过rest去获取资源,而资源的位置是通过uri来找到的,所以要求uri地址中不存在动词,通过HTTP动词对资源进行操作,比如get、post、put、delete,使用一种的标准的统一风格。
restful就是基于rest 而实现的api,就叫restful风格,去使用HTTP的一些标准,比如说返回响应的格式:第一行是操作完成后的状态码,告诉你是成功还是失败了;第二行是返回的类型;第三行是内容的长度,第五行开始是内容。
这样约定了统一的格式以后,使用起来就比较方便,大家不会起冲突,我按照约定去请求,去解析数据,保证了数据的正确性。
rest系统的特征:
1,客户端-服务器,cs结构,client-server,提供服务的服务器与使用服务的客户端需要隔离开,互不影响。
2,无状态,无状态就是服务器端不能保存来自请求中的信息,比如前后请求有依赖关系,本次的请求数据需要前面请求的数据,这样是无法做到的,我的请求信息只限于本次操作,我不会去保存你操作数据的状态,我只是单纯的去调用资源,然后响应完成就结束。
3,可缓存,服务端必须让客户知道请求是否可以被缓存。
4,分层系统,客户端与服务器之间允许有其他的分层,比如负载均衡或者是网关进行统一调用,减少两者之间的耦合性,易于修改维护。
5,对外提供统一的接口,你要操作的数据只能够通过唯一一个确定的接口暴露出来,客户端与服务器之间的数据传输方式必须是统一的,并且你对数据的操作方式,只能通过选择HTTP动作。
6,支持按需代码,服务器可以提供一些代码或者脚本,并在客户的环境中运行。
该种架构风格,只适合与简单的增删改查操作,对于复杂的业务逻辑不太适用,比如说,很多模块之间的调用,只是提供了一种统一的便于大家操做的接口。