REST (Representational State Transfer) is an architectural style that defines best practices for creating scalable web services leveraging the capabilities of the HTTP protocol.
A RESTful web service should naturally exhibit the following properties:
Stateless: Each request contains enough information for the server to operate without maintaining any state
Cacheable: The server's responses contain enough information to allow the clients to make sensible decisions about data storage
Uniform interface: URIs uniquely identify resources and hyperlinks allow the API to be discovered
Layered: Each resource of the API provides a sensible level of detail
The advantage of such an architecture is that it is simple to maintain and easy to discover. It also scales well because there is no need to maintain a persistent connection between the server and the client, which eliminates the need for load balancing or sticky sessions. Finally...