liveBook · Manning

Client-server architecture

As explained in Rust Servers, Services, and Apps

The client-server model is a computing architecture in which clients request data or computation from dedicated servers that manage resources.

Client-server architecture separates software into clients that request data or computation and servers that manage resources, authorize requests, and fulfill them. section 11.1 section 11.5

The architecture typically establishes these boundaries:

  • Clients request information or operations on resources managed by servers. section 11.1
  • Servers act as custodians of data and associated computation, checking authorization before responding. section 11.1 section 11.5
  • REST applies the separation to independently evolving clients and servers, often using standardized resource operations. section 3.2

Web requests and REST resources

A web browser requests a resource from a web server: GET retrieves information, while POST, PUT, and DELETE request computations or state changes. REST APIs apply the same pattern to resources such as users, shipments, courses, or weather data. section 11.1 section 3.2

Figure 11.1 Client/server vs. peer-to-peer computing

Compare dedicated client-server roles with peer-to-peer nodes, where each node can act as both client and server. section 11.1

How Rust Servers, Services, and Apps covers it

How deep it goes
Defines roles, authorization, REST constraints, and request methods, but stops short of implementation internals.
Examples
Uses web browsers, web servers, REST resources, HTTP-style methods, and weather, course, user, and shipment APIs.
What it assumes
Assumes familiarity with distributed systems and web APIs while clarifying client, server, resource, request, and response roles.
What you can do after
Evaluate request flows by identifying client responsibilities, server responsibilities, authorization, resources, and state-changing operations.
How it connects
Connects client-server architecture to distributed systems, REST, statelessness, layered systems, and peer-to-peer networks.

Also explained in

Compare how 5 books explain client-server architecture →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Rust Servers, Services, and Apps. The section links point to the parts of the book it draws on.