REST [Representational State Transfer] is an architectural style for building large-scale networked applications. It is a description of the facets of the WWW that made the Web so successful.
REST describes a networked system in terms of
- data elements (resource, resource identifier, representation)
- connectors (client, server, cache, resolver, tunnel)
- components (origin server, gateway, proxy, user agent)
REST is an architecture that separates server implementation from the client's perception of resources, scales well with large numbers of clients, enables transfer of data in streams of unlimited size and type, supports intermediaries (proxies and gateways) as data transformation and caching components, and concentrates the application state within the user agent components.
-- Roy Fielding