Representational State Transfer

A common practice to separate the Client and Server is Representational State Transfer, or REST architecture style.

In this style, the implementation of the client and the server are done independently without each knowing about the other. Therefore, the client-side or server-side code can be changed at any time without affecting the other side.

REST-compliant systems are often called RESTful systems.

It is said that RESTful systems are stateless. In the Client-Server architecture, stateless means the server does not need to know anything about the client's state and vice versa.

RESTful API is an API that conforms to REST style.

HTTP fits well with the REST style: the client and the server communicate by sending "messages." Statelessness of REST means the server and the client must understand any message received without seeing previous messages.

Implementing RESTful (or simply REST) APIs using HTTP is so common that people mistakenly think HTTP and REST are the same things. For example, see the following: