Characteristics of RESTful Web Services

The REST architectural style describes the below constraints applied to the architecture:
Uniform interface:
This is the API of the web service, describing operations and data structures. It simplifies and decouples the architecture of both client and server, enabling each to evolve independently.
Client–server decoupling:
Clients are separated from servers by a uniform interface.
• For portability, clients must not concern themselves with data storage.
• For simplicity and scalability, servers must not concern themselves with the UI or user state.
• Servers and clients may be replaced and developed independently, as long as the interface is not altered.
1) No client context should be store on the server between requests.
2) Each request contains all of the information necessary to service the request and session state is held in the client.
3) The server can be stateful, but server-side state must be addressable by URL as a resource.
4) This makes servers: More scalable, More visible for monitoring and More reliable in the event of partial network failures
• Clients may cache responses, so responses must define whether they are cachable to prevent clients reusing stale or inappropriate data in response to further requests.
• Well-managed caching can eliminate repetitive client–server interactions, further improving scalability and performance.
Layered system
A client’s connection to a server may pass directly to the service or through several intermediaries, allowing:
• Scalability by enabling load balancing and by providing shared caches
The enforcement of security policies.