A client/server development system is an application made of cooperating software roles: a client requests a service, and a server provides it by processing the request and returning a response. The roles often communicate over a network, but they do not have to run on separate computers. The term describes how application components interact, not a particular kind of hardware.
What the client and server do
Oracle describes client/server computing as an application development methodology for distributing processing among networked systems. In practical terms, the design divides work between programs that use a service and programs that provide one.
As an Amazon Associate I earn from qualifying purchases.
Client: requests and uses a service
A client is a program that asks another component for information or an operation. It often presents the user interface, collects input, sends requests, and displays the results. A web browser is a familiar client. Oracle’s client/server overview describes the general roles; The Open University’s OpenLearn guide uses a browser-based application to explain them.
Server: provides a service
A server is a program that receives client requests, performs work, and returns data, a result, or status information. It may also manage shared data or other resources. “Server” here means a software role; it does not necessarily mean a dedicated physical machine.
Request, processing, and response
The client initiates an exchange. The server receives the request, processes it, and replies to the client that made it. A browser can request a page or other resource from an HTTP server. In a different example, Microchip’s developer documentation describes a DHCP client requesting an IP address from a DHCP server. Microchip’s client-server programming model overview gives these examples.
Communication between the roles
Components exchange messages through a protocol or another communication interface. A network makes it possible to place clients and servers on different machines, but communication also brings practical concerns: latency, connection reliability, protocol choices, and the representation or conversion of data. These are design considerations to assess, not proof that every implementation has the same constraints.
How a client/server system works in an application
Consider an online bookstore. A browser or application asks for a book listing; the server looks up catalogue information and returns it for display. If the catalogue is centrally maintained, updates can be made in one place rather than separately in each client. The Open University uses this sort of example to explain a two-tier application and the role of a browser.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11This pattern is useful when several clients need access to shared services or data. It can also let developers place work on systems suited to it. Those are potential benefits, not automatic outcomes: the design still depends on how work is divided and whether the communication path performs reliably.
Rank #3
Two-tier and three-tier architectures
“Client/server” describes an interaction pattern: a requester uses a provider’s service. “Two-tier” and “three-tier” describe ways to arrange an application’s functions. Tiers are functional divisions, not necessarily separate computers or a one-to-one map to machines.
| Architecture | How functions are arranged | What to consider |
|---|---|---|
| Two-tier | The client side communicates with a server side. Presentation and application logic may sit in the client, while data is managed by a database server; some business logic may instead be implemented in database procedures. | Check how much logic is in the client versus the data server, and whether that division suits the application and its clients. |
| Three-tier | Presentation, business logic, and data are separated into functional areas. A middle application tier holds business logic between the client-facing presentation and the data tier. | The tiers can be managed and deployed separately, but the design must account for communication among them. |
Oracle’s architecture overview discusses both arrangements and the placement of application functions.
Thin clients and thick clients
Thin and thick describe how much work the client performs; they do not specify a tier count. A thin client mainly presents information supplied by the server. A thicker client performs more work locally, such as calculations or data transformations. For example, a browser that mostly displays server-provided information is relatively thin, while an application that performs substantial local processing is thicker. The right balance depends on the work clients need to do and the way the application is maintained.
What to weigh when developing a client/server system
- Placement of application logic: Decide whether functions belong in the client, on the server or database side, or in a separate application tier.
- Client responsibilities: Establish whether clients mainly handle presentation or also perform substantial calculations and data transformations.
- Communication requirements: Choose suitable protocols and interfaces, and account for network latency, reliability, and any data-format conversion the implementation requires.
- Shared data and services: Consider how many clients use the service, whether data needs central updates, and which resources should be shared.
- Change management: Consider how client and server interfaces will evolve and how updates will be coordinated.
Some protocol-specific client code, data-format conversion (often called marshaling), and coordinated-change concerns appear in Oracle’s documentation of a pre-CORBA approach. That discussion is specific to the approach it describes; it should not be treated as a necessary property of every modern client/server system. Oracle’s documentation provides that context.
Best Value
Client/server versus peer-to-peer
In a client/server exchange, one role requests a service and another provides it. In peer-to-peer communication, hosts communicate directly as peers rather than relying on a distinct service-provider role for each exchange. A larger system can combine both patterns, so classify the particular communication relationship you mean rather than assigning one label to every connection in a product. Microchip’s documentation presents peer-to-peer as an alternative architecture.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




