如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构
- 资源与URI
- 统一资源接口
- 资源的表述
- 资源的链接
- 状态的转移
REST本身并没有创造新的技术、组件或服务,而隐藏在RESTful背后的理念就是使用Web的现有特征和能力, 更好地使用现有Web标准中的一些准则和约束。
1、资源与URI
- 任何事物,只要有被引用到的必要,它就是一个资源。
- URI既可以看成是资源的地址,也可以看成是资源的名称。
- 如果某些信息没有使用URI来表示,那它就不能算是一个资源, 只能算是资源的一些信息而已
- URI只应该来表示资源的名称,而不应该包括资源的操作
2、统一资源接口
- 不论什么样的资源,都是通过使用相同的接口进行资源的访问。
- 接口应该使用标准的HTTP方法如GET,PUT和POST,并遵循这些方法的语义。
3、资源的表述
- 资源在外界的具体呈现,可以有多种表述(或成为表现、表示)形式,在客户端和服务端之间传送的也是资源的表述,而不是资源本身。
4、资源的链接
- 把一个个把资源链接起来
5、 状态的转移
- 状态应该区分应用状态和资源状态,客户端负责维护应用状态,而服务端维护资源状态。
- 客户端与服务端的交互必须是无状态的,并在每一次请求中包含处理该请求所需的一切信息。
- 服务端不需要在请求间保留应用状态,只有在接受到实际请求的时候,服务端才会关注应用状态。
- 客户端应用状态在服务端提供的超媒体的指引下发生变迁。服务端通过超媒体告诉客户端当前状态有哪些后续状态可以进入。