Communication between servers and clients on the web is governed by the HyperText Transfer Protocol (HTTP). HTTP is a protocol for accessing resources on servers. The resources are specified with Uniform Resource Indicators (URIs).
HTTP specifies a number of methods for interacting with servers. The two that are most commonly implemented retrieve data from a server. These two methods differ only in the way that they specify the details of the request.
In addition HTTP defines some methods for modifying the data on a server. These methods are normally only implemented on servers that have strong security protection.
The REpresentational State Transfer (REST) client-server architecture is a policy for using the GET and POST requests of HTTP.
http://myserver.com/catalog?item=1729
Here, item is a request parameter and 1729 is its value, perhaps obtained from a drop-down menu or a text field within a submitted form.
Request parameters have some disadvantages:
POST requests send data in such a way that:
By default, a JSF application makes a sequence of POST requests to the server. There are disadvantages to generating only POST requests:
An architectural style called Representational State Transfer (REST) advocates that web applications should use HTTP as it was originally envisioned. That is, requests that simply look up content should be GET requests (possibly with request parameters).
Examples are given in the javaquiz-rest application.