REST,是Roy Thomas Fielding博士于2000年在他的博士论文中提出来的一种万维网软件架构风格。html
REST的全称是Representational State Transfer,中文含义为表现层状态变化。符合REST规范的设计,均可以称为RESTful设计。web
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的软件依赖性更小
- 不须要额外的资源发现机制
- 在软件技术演进中的长期的兼容性更好
参考: