Explain REST

Martin Fowler gives a deep explanation of what is RESTful. The use of REST could be as raw as SOAP which only uses HTTP as a transportation layer between the client and one server endpoint, to mapping each resource to a dedicated URI, to mapping HTTP verbs and errors to HTTP methods and status code, and to finally using some HTML element to help discover service.