- Comparativa sockets / servicios web

 

En este capítulo hemos utilizado dos alternativas, sockets y servicios web, para resolver un mismo problema. En la mayoría de los casos es más recomendable utilizar servicios web. Veamos las ventajas de un servicio web frente a un servidor de sockets:

La principal ventaja de los servicios web es la claridad de diseño. Para acceder al servicio resulta mucho más sencillo utilizar un método estándar muy conocido basado en URL, en lugar de tener que crear nuestro propio protocolo.

Otra ventaja es el aprovechamiento de las cabeceras HTTP. Como se comentó en el apartado anterior, el protocolo HTTP incorpora una serie de cabeceras para ofrecer información adicional en el intercambio. Mediante estas cabeceras podemos controlar aspectos muy importantes, como solicitar la autentificación del cliente, utilizar un modo seguro de transferencia (https), definir el tipo de información transmitida o controlar si queremos que las peticiones a nuestros servicios sean recordadas en la caché del cliente y por cuánto tiempo.

El uso de servidores comerciales en los servicios web nos proporciona grandes ventajas, que sería complejo implementar en nuestro servidor de sockets. Por ejemplo, en un servidor web como Apache se incluye la seguridad, la escalabilidad y facilidades de gestión.

Ambos servicios han de ofrecerse a través de un puerto. Los servicios web suelen utilizar el mismo puerto que los servidores web, el 80. Esto presenta la ventaja de tratarse de un puerto que raramente es filtrado por los cortafuegos. Esta ventaja también puede utilizarse en un servidor por socketssi le asignamos este puerto. Pero en este caso, ya no podrás instalar en la misma máquina un servidor web.


Preguntas de repaso:  Servicios web