The REST constraints were designed with separation of concerns and forward-compatibility in mind, and this design allows for the individual components of REST to evolve without compromising the underlying architectural style itself.
By enforcing the constraints of REST, some particular architectural properties are exposed that reveal the beneficial nature of this architectural style. Let's explore some specific benefits of REST more closely.
Performance is a major benefit of REST, and it is exposed by using cache, simple representations such as JSON, a layered system with multiple servers and load balancing, and the decoupling of components through a uniform interface.
Simplicity is another key benefit of REST, and it is primarily exposed by the uniform resource constraint in which individual components of the system are decoupled. Simplicity is also seen in the server component, which needs only to support HTTP requests, and does not have to support state...