Comprender la relación cliente-servidor

Para visualizar fácilmente la relación cliente-servidor y el tipo de mensaje de solicitud-respuesta, podemos pensar en una aplicación de moneda móvil que actúa como un cliente y un sitio web remoto, como http://api.fixer.io/, que es el servidor . El servidor expone uno o más puntos finales de URL, lo que permite el intercambio de comunicación, como http://api.fixer.io/latest?symbols=USD,GBP. La aplicación móvil puede emitir fácilmente una solicitud HTTP GET http://api.fixer.io/latest?symbols=GBP,HRK,USD, que luego genera una respuesta como esta:

{
"base": "EUR",
"date": "2017-03-10",
"rates": {
"GBP": 0.8725,
"HRK": 7.419,
"USD": 1.0606
}
}

La palabra clave HTTP GET se usa para denotar el tipo de operación que queremos realizar en el receptor ubicado en el sistema remoto (servidor) con el que contactamos a través de URL. La respuesta contiene datos con formato JSON, que nuestra aplicación de moneda móvil puede digerir y utilizar fácilmente. Este ejemplo de intercambio de mensajes específico es lo que marcamos como transferencia de estado representacional (REST) o servicio RESTful.
El servicio REST en sí no es un protocolo; es un estilo arquitectónico además del protocolo sin estado de HTTP y las operaciones estándar (GET, POST, PUT, DELETE, etc.). Hay mucho más que mostrar en este simple ejemplo, como veremos más adelante.
Hay otras formas de servicios que van más allá de ser solo un estilo arquitectónico, como el servicio SOAP y el servicio Apache Thrift. Si bien vienen con sus propios conjuntos de protocolos, también juegan muy bien con HTTP.

Comparte