rest

REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。REST提出了一些设计概念和准则:

1.网络上的所有事物都被抽象为资源(resource);

2.每个资源对应一个唯一的资源标识(url);

3.通过通用的连接器接口(HTTP)对资源进行操作;

4.对资源的各种操作不会改变资源标识(url不变性);

5.所有的操作都是无状态的(stateless)。

  这些概念中的resouce最容易使人产生误解。resouce所指的并不是数据,而是数据+特定的表现形式(representation),这也是为什么REST的全名是Representational State Transfer的原因。举个例子来说,“本月卖得最好的10本书”和“你最喜欢的10本书”在数据上可能有重叠(有一本书即卖得好,你又喜欢),甚至完全相同。但是它们的representation不同,因此是不同的resource。

 

REST 中最重要的概念是资源(resources),使用全球 ID(通常使用 URI)标识。客户端应用程序使用 HTTP 方法(GET/ POST/ PUT/ DELETE)操作资源或资源集。RESTful Web服务是使用HTTP和REST原理实现的Web服务。通常,RESTful Web服务应该定义以下方面:

1.Web 服务的基/根URI(比如http://host/<appcontext>/resources)。

2.支持 MIME 类型的响应数据(例如:JSON/XML等等)。

3.服务支持的操作集合(例如:POST、GET、PUT 或 DELETE)。

 

REST可以降低开发的复杂性,提高系统的可伸缩性。

  REST之所以能够简化开发,是因为其引入的架构约束,HTTP则把对一个url的操作限制在了4个之内:GET、POST、PUT和DELETE。

  REST之所以能够提高系统的可伸缩性,是因为它强制所有操作都是stateless的,这样就没有context的约束,如果要做分布式、做集群,就不需要考虑context的问题了。同时,它令系统可以有效地使用pool。REST对性能的另一个提升来自其对client和server任务的分配:server只负责提供resource以及操作resource的服务,而client要根据resource中的data和representation自己做render。这就减少了服务器的开销。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值