¿Cuál es la diferencia entre un socket y un servicio web?

Para comprender esto, debe comprender la naturaleza en capas de las redes de computadoras. TCP / IP es una capa que permite que las computadoras en Internet se comuniquen entre sí. Cada computadora en Internet tiene una dirección IP. Además, cada computadora tiene enchufes. Algunas de estas computadoras tienen aplicaciones que escuchan conexiones en un socket predefinido. Esta computadora normalmente se llama servidor. Otras computadoras abren un zócalo en su extremo y le dicen al zócalo que se conecte a un zócalo del servidor al proporcionar la IP y el número de zócalo del servidor. La computadora que inicia la conexión se llama cliente. Una vez que el cliente inicia la conexión, la magia de Internet permite que el cliente y el servidor se comuniquen entre sí. El cliente puede enviar datos, el servidor los recibirá. El servidor responderá, el cliente obtendrá la respuesta. El protocolo TCP / ip no dicta cuáles pueden ser los datos. Puede ser cualquier cosa. Para la capa TCP / IP, solo se necesitan transferir bytes de un lado a otro

HTTP es un protocolo que se construye sobre TCP / IP. HTTP dicta qué datos deben enviarse a través de TCP / IP. Cada mensaje HTTP enviado desde el cliente debe tener un verbo, uri, encabezados y un cuerpo. El servidor procesa el mensaje y envía una respuesta que contiene un encabezado y un cuerpo. Tenga en cuenta que el protocolo HTTP no dicta cuál debe ser el formato del URI, cuál debe ser el formato del cuerpo de la solicitud y cuál debe ser el formato del cuerpo de la respuesta. El cliente y el servidor tienen que averiguar qué quieren enviar. Limita los verbos que se pueden usar, pero no exige que los verbos se usen de cierta manera. HTTP fue diseñado para servir páginas HTML

Hay otros protocolos construidos sobre TCP / IP. Por ejemplo, FTP, SCP, etc., estos protocolos están diseñados para admitir casos de uso específicos.

REST es un protocolo que se construye sobre HTTP. Los servicios web modernos se crean utilizando REST. Los servicios web más antiguos usaban un protocolo diferente llamado SOAP. REST dicta qué datos deben enviarse en los encabezados y el cuerpo de la solicitud HTTP. El cuerpo debe contener parámetros de solicitud codificados como cadenas JSON. Además, dicta una convención que los URI deben seguir. El cuerpo de la respuesta debe contener los datos de retorno codificados en formato JSON. Un servicio web debe cumplir con esas convenciones para admitir clientes REST


En pocas palabras, los sockets son lo que usan los servicios web para comunicarse con sus clientes. Puede enviar cualquier cosa bytes aleatorios a través de un socket. Cuando utiliza un servicio web, los datos se envían utilizando un formato estándar que facilita que el cliente analice los datos.

Un socket es lo que lleva los mensajes hacia y desde el servicio web.