the client-server model
Think of a restaurant. You, the customer, do not walk into the kitchen and cook; you sit down and ask a waiter for a dish, and the kitchen prepares it and sends it out. You are the client (you make requests), the kitchen is the server (it holds the resources and does the work). The client-server model organizes a distributed system into exactly these two roles: clients ask for things, and one or more servers, which own some resource or capability, answer.
Concretely, a server is a program that waits, listening for incoming requests, and a client is a program that initiates a request, waits for the reply, and uses it. A web browser asking a web server for a page, an email program fetching mail from a mail server, an app reading rows from a database server — all follow the same request-and-reply shape. The client usually does not know or care how the server is built inside; it only knows the agreed interface (the set of requests it is allowed to make). The server is the authority for its data, which keeps things consistent because there is one place that decides.
Why it matters, and its limits: client-server is the dominant structure of the internet because it is simple to reason about and easy to secure (you control and harden the server). Its weaknesses are the flip side: the server can become a bottleneck (everyone funnels through it) and a single point of failure (if it dies, all its clients are stuck) — which is exactly why servers are often replicated. Contrast this with the peer-to-peer model, where every node is both client and server and there is no central authority.
When you open a web page, your browser (the client) sends a request like "GET /index.html" to a web server. The server finds the page, sends it back, and goes back to waiting for the next client. Thousands of clients can talk to that one server, which is why a popular server needs to be powerful or replicated.
Clients request, the server answers. Simple to reason about, but the server can become the bottleneck.
Client and server are roles, not machines. One program can be a server for some requests and a client for others (a web server fetching from a database is a client of that database). Do not equate "server" with "big expensive computer".