So, there's no single, comprehensive definition of REST, it's just an architectural standard with which to design a server that stores and retrieves information so that it can communicate with other servers of the like. There are four principles presented by IBM that illustrate the concepts of REST:
- Use HTTP methods explicitly
- Retrieve data using GET, create data using POST, update or change data using PUT, delete data using DELETE
- Be stateless
- "don't store state information on the server"
- Instead, save state on client-side via cookies
- Expose directory structure-like URIs
- Basically, your resource links should be paths to the file being accessed
- Transfer XML, JSON, or both