La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios llamados servidores y los demandantes llamados clientes. Un cliente realiza peticiones a un programa servidor, quien le da respuesta. Esta arquitectura permite que las funciones de cliente y servidor se encuentren en plataformas separadas o la misma plataforma y que un servidor dé servicio a múltiples clientes de forma concurrente.