1. 自我理解:资源、表述性状态转换、转移:将服务对象资源化,采用资源的风格来架构系统。
即,把每个服务抽象为资源,通过对这个资源的CURD形成统一的接口。
更多情况下,体现为约定大于协议。
2.统一性:
每个资源只允许有CURD,多个资源间的定义为资源委派:ResourceAssignment,对委派的资源进行CURD.
见:http://www.cnblogs.com/artech/p/3506553.html第4点,使用统一的接口。
3.标准的HTTP方法:
由于RESTful Web API采用了统一的接口,所以其成员体现为针对统一资源的操作。对于Web来说,针对资源的操作需通过HTTP方法来体现。两者结合起来,即Web API针对CRUD的操作只能接受具有对应HTTP方法的请求。
4.无状态性:
Http协议的无状态性,造就Rest的无状态性,无状态性的设计使得Rest本身显得简单而精炼。
对客户端的无状态性,也使得负载均衡更好的实施。因为只有这样集群中的每一台服务器对于每个客户端才是等效的。
5.Rest风格与SOA的区别:
个人理解,Rest是实现SOA架构的一种技术风格,SOA架构的技术实现有很多种,如WebService、WCF、Remoting、WebApi等,其中WebApi即为Rest风格。它约束了你实现它时就是对一个资源的CURD,并且只能采用HTTP协议,且无状态操作。
附:网络上一区别比较:http://blog.sina.com.cn/s/blog_62b0363101012l2z.html
REST的特性
ps: WebAPI学习入门:http://blog.youkuaiyun.com/ojlovecd/article/details/8169822