认识RESTful

REST,是Roy Thomas Fielding博士于2000年在他的博士论文中提出来的一种万维网软件架构风格。html

什么是RESTful

REST的全称是Representational State Transfer,中文含义为表现层状态变化。符合REST规范的设计,均可以称为RESTful设计。web

RESTful的设计哲学

RESTful的设计哲学主要将服务器提供的内容实体看做一个资源,并表如今URL上。浏览器

所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。它能够是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。缓存

好比:服务器

/users/leeper

这个地址表明一个资源,对这个资源的操做,主要体如今HTTP请求的方法上,不是体如今URL上。
例如,对用户的增删查改多是这样设计URL的:restful

POST  /user/add?username=leeper
GET   /user/remove?username=leeper
POST  /user/update?username=leeper
GET   /user/get?username=leeper

主要使用的请求方法是POST和GET,操做行为主要体如今URL上。
在RESTful设计中,它是这样的:网络

POST     /user/leeper
DELETE   /user/leeper
PUT      /user/leeper
GET      /user/leeper

对于资源的具体表现形态,再也不表如今URL上了。架构

特色

来自维基百科:设计

  • 资源是由URI来指定
  • 对资源的操做包括获取、建立、修改和删除资源,这些操做正好对应HTTP协议提供的GET、POST、PUT和DELETE方法
  • 经过操做资源的表现形式来操做资源
  • 资源的表现形式则是XML或者HTML,取决于读者是机器仍是人,是消费web服务的客户软件仍是web浏览器。固然也能够是任何其余的格式

优势

来自维基百科:rest

  • 可更高效利用缓存来提升响应速度
  • 通信自己的无状态性可让不一样的服务器的处理一系列请求中的不一样请求,提升服务器的扩展性
  • 浏览器便可做为客户端,简化软件需求
  • 相对于其余叠加在HTTP协议之上的机制,REST的软件依赖性更小
  • 不须要额外的资源发现机制
  • 在软件技术演进中的长期的兼容性更好

误区

  • 避免URI包含动词
  • 避免在URI中加入版本号

总结

  • 每个URI表明一种资源
  • 客户端和服务器之间,传递这种资源的某种表现层
  • 客户端经过四个HTTP动词,对服务器端资源进行操做,实现"表现层状态转化"

参考:

相关文章
相关标签/搜索