1. The synchronous model where client waits (and is blocked) for the server to send the answer or until
the timeout is reached
2. The asynchronous model. In this model, the clients send the request and immediately returns. It is
not blocked. It is free to do whatever it has to do like updating a graphical user interface. The client
has the choice to retrieve the server answer by checking if the reply is arrived by calling an API
specific call or by requesting that a call-back method is executed when the client receives the server
answer.