The term client-server refers to a popular model for computer networking that utilizes client and server devices each designed for specific purposes. The client-server model can be used on the Internet as well as local area networks (LANs). Examples of client-server systems on the Internet include Web browsers and Web servers, FTP clients and servers, and the DNS.
Client and Server Devices
Client/server networking grew in popularity many years ago as personal computers (PCs) became the common alternative to older mainframe computers.
Client devices are typically PCs with network software applications installed that request and receive information over the network. Mobile devices as well as desktop computers can both function as clients.
A server device typically stores files and databases including more complex applications like Web sites.
Server devices often feature higher-powered central processors, more memory, and larger disk drives than clients.
Client-Server Applications
The client-server model organizes network traffic per client application and also per device. Network clients make requests to a server by sending messages, and servers respond to their clients by acting on each request and returning results. One server generally supports numerous clients, and multiple servers can be networked together in a pool to handle the increased processing load as the number of clients grows.
A client computer and a server computer are usually two separate devices, each customized for their designed purpose. For example, a Web client works best with a large screen display, while a Web server does not need any display at all and can be located anywhere in the world.
However, in some cases a given device can function both as a client and a server for the same application. Additionally, a device that is a server for one application can simultaneously act as a client to other servers, for different applications.
Some of the most popular applications on the Internet follow the client-server model including email, FTP and Web services.
Each of these clients features a user interface (either graphic- or text-based) and a client application that allows the user to connect to servers. In the case of email and FTP, users enter a computer name (or sometimes an IP address) into the interface to set up connections to the server.
Local Client-Server Networks
Many home networks utilize client-server systems without even realizing it. Broadband routers, for example, contain DHCP servers that provide IP addresses to the home computers (DHCP clients). Other types of network servers found in home include print servers and backup servers.
Client-Server vs Peer-to-Peer and Other Models
The client-server model was originally developed to allow more users to share access to database applications. Compared to the mainframe approach, client-server offers improved scalability because connections can be made as needed rather than being fixed. The client-server model also supports modular applications that can make the job of creating software easier. In so-called "two tier" and "three tier" types of client-server systems, software applications are separated into modular pieces, and each piece is installed on clients or servers specialized for that subsystem.
Client-server is just one approach to managing network applications. The primary alternative to client-server, peer-to-peer networking, treats all devices as having equivalent capability rather than specialized client or server roles. Compared to client-server, peer to peer networks offer some advantages such as better flexibility in expanding the network to handle large number of clients. Client-server networks generally offer advantages over peer-to-peer as well, such as in the ability to keep data protected from attackers.