Client-Server Model
The client-server model is the dominant architecture for networked applications. A central server provides services, and clients request them. From websites to email to gaming — it's everywhere.
Learning Objectives
- 11.6.2.3 Describe the features of the client-server model
Conceptual Anchor
The Restaurant Analogy
In a restaurant, you (the client) make a request (order food). The kitchen (the server) processes your request and sends back the result (your meal). Many clients can be served simultaneously, but the kitchen manages all the resources.
Rules & Theory
How It Works
┌──────────┐ ┌──────────────┐
│ Client │ ── Request ──→ │ Server │
│ (browser)│ │ (web server)│
│ │ ←── Response ── │ │
└──────────┘ └──────────────┘
1. Client sends a REQUEST (e.g., "Give me the homepage")
2. Server PROCESSES the request (finds the file, queries DB)
3. Server sends a RESPONSE (the webpage data)
4. Client DISPLAYS the resultClient vs Server
| Feature | Client | Server |
|---|---|---|
| Role | Makes requests | Fulfills requests |
| Hardware | Regular PC, phone, tablet | Powerful machine, high RAM/storage |
| Software | Browser, email client, app | Apache, Nginx, MySQL, Exchange |
| Number | Many (thousands/millions) | One or few (can be clustered) |
| Always on? | No (turns on/off) | Yes (24/7 uptime expected) |
Types of Servers
| Server Type | Service Provided | Example |
|---|---|---|
| Web server | Hosts websites | Apache, Nginx |
| File server | Stores and shares files | NAS, Windows Server |
| Mail server | Handles email (send/receive) | Exchange, Postfix |
| Database server | Stores and queries data | MySQL, PostgreSQL |
| DNS server | Translates domain names to IP | Google DNS (8.8.8.8) |
| Print server | Manages print jobs | Shared network printer |
Client-Server vs Peer-to-Peer
| Feature | Client-Server | Peer-to-Peer (P2P) |
|---|---|---|
| Central server | Yes | No — all peers are equal |
| Security | Centralized, easier to manage | Difficult — each peer manages own security |
| Scalability | Scales by upgrading server | Scales by adding more peers |
| Cost | High (server hardware + admin) | Low (no dedicated server) |
| Reliability | Server failure = service down | No single point of failure |
| Examples | Websites, email, databases | BitTorrent, Skype (old), blockchain |
Thin vs Thick Clients
Thin client — most processing on server (e.g., web apps, Google Docs). Thick client — most processing on client device (e.g., desktop apps, games). Modern apps often use a mix of both.
Common Pitfalls
"Server" = Big Computer
A server is defined by its role, not its hardware. Any computer running server software (Apache, MySQL) is a server. Your laptop can be a server.
Tasks
Define client and server. Name three types of servers.
Explain the request-response cycle using the example of browsing a website.
Compare client-server with peer-to-peer. Which is better for a school network? Which is better for file sharing among friends? Justify your answers.
Self-Check Quiz
Q1: What does a client do?
Q2: What is the main advantage of client-server over P2P?
Q3: Is a web browser a client or a server?