Use of HTTP capabilities as far as possible. Design of resources (nouns), not methods or operations (verbs). Use of the uniform interface, defined by HTTP methods, which have well-specified semantics. Stateless communication between client and server. Use of loose coupling and independence of the requests.

