Representational State Transfer (REST): Web Architecture Style
Learn the core principles of REST web architecture including client-server separation, statelessness, caching, uniform interfaces, layered systems, and code-on-demand. Understand how these constraints enable scalable, flexible, and performant APIs by guiding their design and interactions. This lesson equips you to apply REST constraints effectively in product architecture interviews.
Motivation
In December 1990, Tim Berners-Lee had a vision for information sharing and started a World Wide Web (or simply the web) project. Initially, during the World Wide Web’s design phase, the web was for a limited number of people; however, when it was opened to the public, the number of users started multiplying and increased to
Note: “All design decisions at the architectural level should be made within the context of the functional, behavioral, and social requirements of the system being designed, which is a principle that applies equally to both software architecture and the traditional field of building architecture.”
— Roy Fielding (The author of the Ph.D. dissertation that originally presented REST.)
Representational state transfer (REST)
REST is a well-known web architecture style proposed by
Hence, in order to scale the Internet, a pragmatic approach is adopted to satisfy all the following constraints:
Client-server
Cache
Stateless
Uniform interface
Layered system
Code-on-demand
We explain each constraint in detail below.
Client-server
Client-server is the most commonly employed architectural style for network-based ...