Representational State Transfer (REST) provides a set of architectural constraints that, when applied as a whole, emphasizes scalability of component interactions, generality of interfaces, independent deployment of components, and intermediary components to reduce interaction latency, enforce security, and encapsulate legacy systems.
REST defines a set of architectural principles by which you can design Web services that focus on a system's resources, including how resource states are addressed and transferred over HTTP by a wide range of clients written in different languages.
It was first introduced in 2000 by Roy Fielding at the University of California, Irvine, in his academic dissertation, "Architectural Styles and the Design of Network-based Software Architectures," which analyzes a set of software architecture principles that use the Web as a platform for distributed computing.
A concrete implementation of a REST Web service follows four basic design principles:
Use HTTP methods explicitly.
Expose directory structure-like URIs.
Roy Fielding's academic dissertation on "Architectural Styles and the Design of Network-based Software Architectures," can be found here:
The following Cisco Unified Presence web services are made available via REST: