REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。表述性状态转移(REST)是一组架构约束条件和原则,而满足这些约束条件和原则的应用程序或设计就是RESTful。
REST原则:
- 资源与URI(要让一个资源可以被识别,需要有个唯一标识,在Web中这个唯一标识就是URI)
- 统一资源接口(RESTful架构应该遵循统一接口原则,统一接口包含了一组受限的预定义的操作,不论什么样的资源,都是通过使用相同的接口进行资源的访问。接口应该使用标准的HTTP方法如GET,PUT和POST,并遵循这些方法的语义)
- 资源的表述(资源的表述包括数据和描述数据的元数据,例如,HTTP头"Content-Type" 就是这样一个元数据属性)
- 资源的链接
- 状态的转移(实际上,状态应该区分应用状态和资源状态,客户端负责维护应用状态,而服务端维护资源状态。即cookie,session之类的)