计算机科学中,客户机-服务器是由客户机系统和服务器系统两部分组成的软件结构模型,两者通过计算机网络或在同一台计算机上进行通信。客户机-服务器应用程序是由客户机和服务器软件组成的分布式系统。客户机服务器应用程序提供了一种更好的分担工作负载的方式.客户机进程总是发起与服务器的连接,而服务器进程总是等待任何客户机的请求。

当客户端进程和服务器进程都运行在同一台计算机上时,这称为单座设置。

另一种相关的软件架构被称为对等,因为每台主机或应用实例可以同时充当客户机和服务器(不同于客户机-服务器模式的集中式服务器),而且每台主机或应用实例的责任和地位相当。点对点架构通常使用缩写P2P

客户机与服务器的关系描述了客户机之间的关系,以及客户机如何向服务器提出服务请求,服务器如何接受这些请求,处理这些请求,并将请求的信息返回给客户机。客户端和服务器之间的交互关系通常使用序列图来描述。序列图在统一建模语言中是标准化的。

客户端-服务器P2P架构在今天都得到了广泛的应用。

客户机-服务器软件架构的基本类型只采用两类主机:客户机和服务器。这种类型的架构有时被称为两层架构两层架构意味着客户机作为一层,服务器进程作为另一层。

客户机-服务器软件结构已经成为网络计算的基本模型之一。许多类型的应用程序都是采用客户机-服务器模式编写的。标准的网络功能,如E-mail交换、Web访问和数据库访问等,都是基于客户机-服务器模型。例如,网络浏览器是用户计算机上的客户端程序,可以访问世界上任何网络服务器上的信息。