Client server

Client-server is a computing architecture which separates a client from a server, and is almost always implemented over a computer network. Each client or server connected to a network can also be referred to as a node. The most basic type of client-server architecture employs only two types of nodes: clients and servers. This type of architecture is sometimes referred to as two-tier. It allows devices to share files and resources.

Each instance of the client software can send data requests to one or more connected servers. In turn, the servers can accept these requests, process them, and return the requested information to the client. Although this concept can be applied for a variety of reasons to many different kinds of applications, the architecture remains fundamentally the same.

These days, clients are most often web browsers, although that has not always been the case. Servers typically include web servers, database servers and mail servers. Online gaming is usually client-server too. In the specific case of MMORPG, the servers are typically operated by the company selling the game; for other games one of the players will act as the host by setting his game in server mode.

The interaction between client and server is often described using sequence diagrams. Sequence diagrams are standardized in the Unified Modeling Language.

Characteristics of a client

* Request sender is known as client
* Initiates requests
* Waits for and receives replies.
* Usually connects to a small number of servers at one time
* Typically interacts directly with end-users using a graphical user interface

Characteristics of a server

* Receiver of request which is sent by client is known as server
* Passive (slave)
* Waits for requests from clients
* Upon receipt of requests, processes them and then serves replies
* Usually accepts connections from a large number of clients
* Typically does not interact directly with end-users