Hall of FameRoy T. Fielding200031 min readpaperintermediate
Architectural Styles and the Design of Network-based Software Architectures, Chapter 5: REST
Summary
Fielding’s dissertation chapter defines the REST architectural style by layering constraints—client‑server, stateless, cache, uniform interface, and layered system—onto a null style. It explains the trade‑offs each constraint introduces and why they matter for scalable web architectures.
- REST is derived by incrementally adding constraints (client‑server, stateless, cache, uniform interface, layered) to a null style, each shaping system properties
- Statelessness improves visibility, reliability, and scalability but increases per‑request overhead and shifts state to the client
- The uniform interface decouples clients and servers via resource identification, representations, self‑descriptive messages, and hypermedia‑driven state
- Layered systems enable intermediaries (proxies, caches) and security boundaries, at the cost of added latency
Engineers building HTTP APIs or distributed web services need to understand REST’s constraints to make informed trade‑offs about scalability, reliability, and evolvability.
8/10

