REST is a specification/constraint/guideline for web applications. An application that follows these guidelines is called restful. The guidelines are on wikipedia. In short, they are:
- Separation of concerns: Clients handle the UI and user state. Servers store and manage data.
- Stateless: Every request from client will have all information relating to user state. The server will not store any information relating to user state.
- Cachable: The responses from REST server are cacheble by the browser. If you don't clear cache stale responses will be used.
- Layered: The client cannot tell if it is connected to end server or intermediary.
- Code on demand: The server can send applets or client side scripts.
- Uniform interface: This one has subcategories and I don't understand what they mean.