• ↑↓ to navigate
  • ↵ to open
  • ⟶ to select
  • ⌘ ⌥ ↵ to open in a panel
  • ←→ to navigate
  • esc to dismiss
⌘ '
keyboard shortcuts

The Problem

How do you structure an application where one side (client) handles user interaction while another side (server) manages data and processing? What is the fundamental architecture?

Core Idea

The client-server model is a distributed architecture where clients request services from servers. The client handles most user-facing tasks while the server manages data and logic. Front end maps to client, back end maps to server.

How It Works

  1. Client: Initiates requests, renders UI, captures user input, displays results
  2. Server: Receives requests, processes logic, accesses data, returns responses
  3. Communication: Through network protocols (HTTP, WebSocket)
  4. Separation: Client and server can be on different machines, even geographically separated
  5. Responsibilities: Client focuses on presentation, server focuses on data/processing

This separation allows scaling—multiple clients can connect to one server, and servers can be scaled independently from clients.

Key Properties

  • Client makes requests, server provides responses
  • Client is typically front end, server is typically back end
  • Network communication between client and server
  • Server is usually more powerful, shared across clients
  • Client can be thin or thick (rich client with more logic)
  • Stateless or stateful communication patterns

Visual Explanation

client_server_model A Client Server Model Input B Client Server Model Core Mechanism A->B triggers C Client Server Model Output B->C produces

Semantic Network

semantic_client_server_model THIS Client Server Model REL1 Related Concept THIS--REL1 related REL2 Builds Into THIS--REL2 builds into

Connections

Built from:

  • Client — Requesting entity in the model
  • Server — Responding entity in the model

Builds into:

  • Front End — Client side is front end
  • Back End — Server side is back end
  • API — Communication interface between client and server

Related:

  • HTTP — Common protocol for client-server communication
  • Scalability — Benefit of client-server separation

Edge Cases & Gotchas

  • Network latency affects responsiveness
  • Server failure affects all connected clients
  • Requires well-designed APIs for communication
  • Security considerations for network communication