Un servidor, generalmente, es un programa que escucha las conexiones entrantes en un puerto en una interfaz de red (u otro socket *). Cuando llega una conexión, la procesa de acuerdo con lo que se supone que debe hacer el servidor. Por ejemplo, un servidor HTTP escuchará un puerto y cuando se envíe una solicitud HTTP válida, responderá con una respuesta HTTP válida. Rechazará las conexiones que no realicen solicitudes HTTP válidas.
Los servidores HTTP populares como apache o nginx generalmente escuchan las solicitudes HTTP y realizan alguna forma de redireccionamiento de las solicitudes a otros servicios. Puede ser un simple reenvío de la solicitud a un puerto o máquina diferente, o usar algo como CGI u otros complementos para crear una respuesta HTTP.
Una base de datos también es un programa. Su trabajo es manejar la gestión de datos. Hay muchos tipos de bases de datos, y todas tienen objetivos ligeramente diferentes. Algunos son servidores de bases de datos (PostgreSQL, MySQL, MongoDB, etc.), algunos están integrados (sqlite, Neo4j **), algunos son relacionales y usan SQL, algunos no y pueden ser bases de datos de documentos, gráficos o valores clave, algunos son solo en memoria, algunos son persistentes en el disco.
- ¿Alguien necesita un servidor dedicado para obtener bitcoin?
- ¿Cuál es la diferencia entre un mainframe y un servidor?
- ¿Linux gobernará el mercado de servidores para siempre?
- ¿Cuáles son algunos de los mejores recursos (gratuitos o de pago) para aprender SSAS (SQL Server Analysis Services)?
- ¿Cómo puedo reiniciar mi servidor de desarrollo alojado de forma remota?
Una base de datos también puede ser un servidor. Escuchará conexiones de bases de datos de clientes de bases de datos, como MySQL, PostgreSQL o MongoDB.
* puede ser, por ejemplo, un socket de dominio unix.
** Neo4j se puede incrustar o ejecutar como servidor.