REST is designed to be simple and light-weight in resource requirements.
Alternatives to REST include Web-services using SOAP.
Proponents of REST argue that the Web's scalability and growth are a direct result of a few key design principles:
- Application state and functionality are abstracted into resources
- Every resource is uniquely addressable using a universal syntax for use in hypermedia links
- All resources share a uniform
interface for the transfer of state between client
and resource, consisting of
- A constrained set of well-defined operations
- A constrained set of content types, optionally supporting code on demand
- A protocol which is:
- Client-server
- Stateless
- Cacheable
- Layered
The following table associates several common HTTP verbs with similar database operations, however the meaning of the HTTP verbs do not correspond directly with a single database operation. For example, an HTTP PUT is used to set the value of a resource and may result in either a creation or replacement as needed.
HTTP CRUD POST Create GET Read PUT Update, Create DELETE Delete When used RESTfully, HTTP is stateless. Each message contains all the information necessary to understand the request when combined with state at the resource. As a result, neither the client nor the server needs to remember any communication state between messages. Any state retained by the server must be modeled as a resource.

