REST, (Representational State Transfer), is an architectural style. In SOA, (Service Oriented Architecture), Web services are performed on a service. REST is an ROA, (Resource Oriented Architecture), and performs operations on a Resource. In its simplest form, a resource can be reached by the URL that is specified in the client’s HTTP request to the server.


REST is based on a PhD dissertation by Roy Fielding, 2000. An implementation that is REST compliant is called RESTful. REST uses HTTP as the main protocol for exchanging of Requests and Responses. HTTP verbs such as GET, POST, PUT, and DELETE are used when performing RESTful requests to indicate the desired operation on the resource. In simple terms the following can be viewed as URLs leading to different resources:






Even-though each of the above URLs is part of, each one is leads to a separate resource. Some of the most important features that enhance the performance of a RESTful implementation:


-          It’s stateless architecture where requests are independent of each other.

-          It’s caching which allows caching to be performed at any layer, enabling faster response time to clients.


Additionally, in comparison to the SOA architecture, REST does not depend on XML which adds to the processing overhead of Requests/Responses, due its parsing requirements.


Some of the operations performed in a RESTful implementation are Idempotent which means that repeating the same request several times has the same effect as doing it one time. A good example of idempotent operation is an HTTP GET.


As shown in the figure below, REST enables various content presentation types such as Text and JSON, (Java Script Object Notation) adding to its flexibility in content delivery.

 Figure 1