The Client-Server Model

Web·7 min read·Jan 1, 2026

The client-server model is a type of distributed software architecture that divides tasks between two entity types called clients and servers.

In this model, the client sends a request for a service or a resource to a server, which in turn processes the request, and sends a response containing the execution result of the service or the requested resource back to the client in charge of displaying the result to the user.

For example, a web browser (i.e. the client) that requests a web page to a web server (i.e. the server) and displays it to the user once received.

In the context of the web, clients and servers are usually computer programs running on devices such as computers, phones, and tablets.

Note that while clients and servers communicate over a computer network, they may also both reside on the same system.

Client and server communication

Clients and servers exchange requests and responses over a network, such as a local area network (LAN) or the Internet, using a system of rules called a communication protocol, which defines the syntax, semantics, and synchronization of communication between parties.

Each message has an exact meaning intended to elicit a specific response from a range of possible responses pre-determined for that particular situation.

This means that neither the client nor the server are required to know about each other's implementations in order to generate and process requests and responses, for as long as the message format complies with the communication protocol standards.

Consequently, a single client can send requests to multiple servers, and a single server can serve multiple clients.

For example:

  • Web browsers, such as Google Chrome, are clients that connect to web servers to request and display web pages using the HTTP protocol.
  • Email clients, such as Microsoft Outlook, are clients that connect to mail servers to retrieve and send emails using the SMTP protocol.
  • File clients, such as FileZilla, are clients that connect to file servers to upload and download files such as documents, images, videos, and so on, using the FTP protocol.

That being said, it may happen that similar types of clients, such as email clients, use different protocols to achieve more or less the same result.

For instance, they may either use:

  • The POP protocol (Post Office Protocol) where all emails are downloaded from the server to the device and then deleted from the server.
  • The IMAP protocol (Interactive Message Access Protocol) where all emails are read directly on the server, thus making it possible to be accessed from multiple devices.

Note that in certain cases, multiple protocols often describe different aspects of a single communication, and that a group of protocols designed to work together is known as a protocol suite.

Local and remote servers

Since clients and servers are computer programs, they may either run on the same machine or on different machines located across the globe.

When the client and the server are running on the same machine, the server is then referred to as a local server.

These programs often communicate using inter-process communication mechanisms such as pipes, queues, or shared memory.

When the client and the server are running on different machines, the server is then referred to as a remote server.

These programs usually communicate through computer networks such as the Internet.

Note that a single machine can run at the same time:

  • Multiple clients, like for example, a web browser and a file client.
  • Multiple servers, like for example, a web server and a file server, so that it can serve different data to multiple clients making different kinds of requests.

Also note that the machines the software servers run on are also called servers.

To avoid confusion, the machines that run software servers are therefore usually referred to as hosts.

Benefits of the client-server model

The client-server model offers several benefits, which contribute to its widespread adoption and use in various computing environments.

Hardware and software interoperability

It promotes interoperability between different hardware and software platforms, as clients and servers communicate using standardized protocols and interfaces.

For example, a web browser running on macOS can communicate with a web server running on Linux using the HTTP protocol.

Technological flexibility

It provides more flexibility to organizations by allowing them to develop multiple clients for the same product to best satisfy the customer's needs.

For example, a map service like Google Maps is available through both a web browser and a mobile application.

Moreover, it allows developers to choose the right technology that is best suited to the technical requirements of the product or the target platform.

For example, a client written in Java can communicate with a server written in Node.js.

Efficient and safe resource sharing

It enables the efficient sharing and utilization of resources and services across multiple clients by centralizing them on the same servers.

Moreover, it allows administrators to control the access to these resources by defining security policies and mechanisms such as authentication, authorization, encryption, and so on.

🗒️ Summary

Here's a summary of what you've learned in this lesson:

  • The client-server model is a type of distributed software architecture.
  • Clients send requests for services or resources to servers.
  • Servers send responses containing the execution result of the services or the requested resources to clients.
  • Clients and servers exchange messages over a network using a system of rules called a communication protocol.
  • Multiple protocols serve different purposes: HTTP for the web, SMTP for email, FTP for file transfer, etc.
  • A server located on the same machine as the client is referred to as a local server.
  • A server located on a different machine than the client is referred to as a remote server.
  • A physical server machine is referred to as a host.
  • This model promotes interoperability between different hardware and software platforms.
  • This model allows the development of clients and servers using multiple technologies.
  • This model enables the efficient sharing and utilization of resources and services across multiple clients.
  • This model allows access to resources using authentication, authorization, encryption, etc.