🔍
📢

REST - Web服务架构风格

REST(Representational State Transfer)是一种Web服务的架构,其目的是创建具有良好扩展性的分布式系统。

 

它的约束包含:

  1. 使用C/S模型。client和server之间通过一个统一的接口来互相通讯。
  2. 层次化的系统。分层系统通过限制组件的行为,将架构分解为若干等级的层。通过将组件对系统的知识限制在单一层内,为整个系统的复杂性设置了边界,提高了底层独立性。
  3. 无状态。server不会保存有关客户端的任何状态,即client自身负责用户状态的维持,并在每次发送请求时都需要提供足够的信息。
  4. 可缓存。减少client和server之间的信息传输,以提高性能。
  5. 统一的接口。核心特征。一个REST系统需要使用一个统一的接口来完成子系统之间以及服务与用户之间的交互。这使得系统中的各个子系统可以独自完成演化。
    1. 资源的识别。每个资源都拥有一个资源标识,可以唯一地表明该资源(如URI)
    2. 消息的自描述性。消息需要能够提供自身如何被处理的足够信息。
    3. 资源的自描述性。一个REST系统所返回的资源需要能够描述自身,并提供足够的用于操作该资源的信息,如如何对资源进行添加,删除以及修改等操作。
    4. HATEOAS。即客户只可以通过服务端所返回各结果中所包含的信息来得到下一步操作所需要的信息,如到底是向哪个URL发送请求等。

 

如果一个系统满足了上面所列出的五条约束,那么该系统就是RESTful的。