En Informática, cliente-servidor es un modelo de arquitectura de software que consta de dos partes, sistemas cliente y sistemas servidor, ambos comunicándose a través de una red informática o en el mismo ordenador. Una aplicación cliente-servidor es un sistema distribuido compuesto por software cliente y servidor. La aplicación cliente-servidor proporciona una mejor manera de compartir la carga de trabajo.El proceso cliente siempre inicia una conexión con el servidor, mientras que el proceso servidor siempre espera las peticiones de cualquier cliente.
Cuando el proceso cliente y el proceso servidor se ejecutan en el mismo ordenador, se denomina configuración de un solo puesto.
Otro tipo de arquitectura de software relacionada se conoce como peer-to-peer, porque cada instancia de host o aplicación puede actuar simultáneamente como cliente y servidor (a diferencia de los servidores centralizados del modelo cliente-servidor) y porque cada uno tiene responsabilidades y estatus equivalentes. Las arquitecturas peer-to-peer se suelen abreviar con el acrónimo P2P.
La relación cliente-servidor describe la relación entre el cliente y cómo realiza una solicitud de servicio al servidor, y cómo el servidor puede aceptar estas solicitudes, procesarlas y devolver la información solicitada al cliente. La interacción entre el cliente y el servidor suele describirse mediante diagramas de secuencia. Los diagramas de secuencia están estandarizados en el Lenguaje de Modelado Unificado (Unified Modeling Language).
Tanto las arquitecturas cliente-servidor como las arquitecturas P2P son muy utilizadas hoy en día.
El tipo básico de arquitectura de software cliente-servidor emplea sólo dos tipos de hosts: clientes y servidores. Este tipo de arquitectura se denomina a veces de dos niveles. La arquitectura de dos niveles significa que el cliente actúa como un nivel y el proceso del servidor actúa como el otro nivel.
La arquitectura de software cliente-servidor se ha convertido en uno de los modelos básicos de la computación en red. Se han escrito muchos tipos de aplicaciones utilizando el modelo cliente-servidor. Las funciones estándar de la red, como el intercambio de correo electrónico, el acceso a la web y el acceso a las bases de datos, se basan en el modelo cliente-servidor. Por ejemplo, un navegador web es un programa cliente en el ordenador del usuario que puede acceder a la información en cualquier servidor web del mundo.