Representational state transfer (REST) is a convention for stateless client-server communications that is typically implemented using the HTTP protocol (using other protocols is also technically possible). REST itself is not a protocol – it is simply a set of conventions that strive to create simplicity and consistency in resource naming across different web-based applications or APIs.
In a RESTful architecture, standard HTTP methods are used in combination with Uniform Resource Identifiers (URIs) to communicate requests and responses between a client and a server. Each URIs describes a self-contained operation and contains all the information needed to satisfy the request.
A RESTful interface simplifies communications between web services because every request is self-contained, so there is no need to rely on, or keep track of, a persistent session.