Client-server networking grew in popularity during the 1990s as personal computers became the alternative to mainframe computers. Client-server networking refers to a computer networking model that uses both client hardware devices and servers, each with specific functions.
The client-server model can be used on the internet as well as on a local area network (LAN). Examples of client-server systems on the internet include web browsers and web servers, FTP clients and servers, and the DNS.
Client devices are typically PCs with network software applications installed that request and receive information over the network. In addition, mobile devices function as clients.
Servers store files and databases, including complex applications and websites. Servers typically feature higher-powered central processors, more memory, and larger disk drives than client devices.
The client-server model organizes network traffic using a client application and client devices. Network clients send messages to a server to make requests of it. Servers respond to clients by acting on each request and returning the results. One server supports many clients, and multiple servers can be networked together in a server pool to handle increased processing loads as the number of clients grows.
A client computer and a server computer are two separate units of hardware, each customized for a designed purpose. For example, a web client works best with a large screen display, while a web server doesn't need a display and can be located anywhere in the world.
In some cases, however, a device can function 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 graphic or text-based user interface and a client application that connects the client to the server. In the case of email and FTP, users enter a computer name (or an IP address) into the interface to set up a connection to the server.
Many home networks use client-server systems on a small scale. Broadband routers, for example, contain DHCP servers that provide IP addresses to the home computers, the DHCP clients. Other types of network servers found in a home include print servers and backup servers.
The client-server model of networking was initially developed to share access to database applications with many users. Compared to the mainframe model, client-server networking has better flexibility because connections can be made on-demand and as needed rather than being fixed.
The client-server model supports modular applications that can make the job of creating software easier. In the two-tier and three-tier types of client-server systems, software applications are separated into modular components, and each component is installed on clients or servers specialized for that subsystem.
Client-server networking is one approach to managing network applications. The primary alternative to client-server networking, peer-to-peer networking, treats all devices as having equivalent capability rather than specialized client or server roles.
Compared to client-server networks, peer-to-peer networks offer advantages such as flexibility in expanding the network to handle a large number of clients. Client-server networks offer advantages over peer-to-peer networks such as the ability to manage applications and data in a centralized location.