REST stands for Representational State Transfer
. It is an architectural style for creating standards between computer systems on the web, thus making it easier for systems to communicate with each other
. Roy Fielding introduced the term in his doctoral dissertation in 2000
. Key characteristics of REST:
- Client-Server The client and server implementations can be done independently
- Stateless The server isn't required to know what state the client is in, and vice versa
- Cacheable Responses must be defined as cacheable or non-cacheable so clients don't reuse inappropriate data in additional requests
- Layered System Clients are unable to discern whether they are connected to the end server or an intermediary
- Uniform Interface Applications must adhere to a uniform interface to get the benefits of REST, which involves using standard HTTP methods and resource-oriented URLs in a consistent way