REST is the Representational State Transfer architectural style. In essence, REST is a set of rules (constraints) that an architecture should conform to. This is in contrast to an 'unconstrained architecture' where services are free to define their own ideosyncratic interfaces. The most important aspect of REST is a uniform interface between components, allowing them to communicate in a standard way. Requests use the standard HTTP methods. GET, PUT and DELETE requests can do only what is expected. The effect is that your services are accessible through standard tools, and it is safe for other services and utilities to use yours in ways you did not predict.
Some useful references:
- Roy Thomas Fielding's dissertation on Architectural Styles and the Design of Network-based Software Architectures
- Wikipedia
- REST wiki
- REST in plain English
- A blog post by Dare Obasanjo 17/8/08
- A blog post on how to create a REST protocol
- A blog post on how not to create a REST API




