Skip to main content

What is client-server architecture?

Client-server architecture is a way of organizing how applications work over a network, where some devices (clients) request data or services, and others (servers) provide them.

The simplest way to put it: the client asks, the server answers.


Who is the client and who is the server

Client

A client is a program or device that:

  • initiates the request
  • wants to get data or a service

Examples of clients:

  • a browser
  • a mobile app
  • an email client
  • a program that calls an API

Server

A server is a program or computer that:

  • accepts requests from clients
  • processes them
  • sends back responses

Examples of servers:

  • a web server
  • a mail server
  • a database server
  • an API server

How client-server architecture works

A typical scenario:

  1. The client sends a request (for example: "give me the web page")
  2. The server accepts the request
  3. The server processes it (looks up data, checks access)
  4. The server sends a response
  5. The client shows the result to the user

Important: the client does not know how the server does its work internally, and the server does not care exactly how the client will display the result.


Real-life example

When you visit a website:

  • the browser is the client
  • the website is the server

The browser sends an HTTP request The server returns HTML, CSS, images The browser renders the page


Why client-server architecture is used

Main advantages:

  • centralized data (everything is stored on the server)
  • easy updates (the server changes, clients keep working)
  • security (access control lives on the server)
  • scalability (it can serve many clients)

What matters for an interview

  • Client and server are roles, not necessarily separate computers (one program can be both a client and a server)
  • The client always initiates the request
  • The server waits for requests and responds to them

Short answer for an interview

A convenient phrasing:

Client-server architecture is an interaction model where client applications send requests and servers process those requests and return responses, providing data or services.

Short Answer

Interview ready
Premium

A concise answer to help you respond confidently on this topic during an interview.