In the client/server model for computing, the component parts of a
system are divided into two classes, clients and servers. A
server is the system component that manages or controls a
particular system resource and makes that resource available to other
system components, collectively known as the clients.
The client component gains access to the shared
resource by submitting a request for that resource to the server.
The server optimizes the use of a shared resource, while making
the resource available to multiple clients, by serving as a sort
of traffic director in that the server schedules and allocates access for
the individual clients.
Many workstation users are accustomed to think of a server as
being a particular computer or box of electronic components. We commmonly
say things such as "The file server is down the hall." or "The print server
is in Carol's office." Programmers, however, must think of clients
and servers as being individual programs or software systems. This
is particularly true of the X Windows environment, where client and
server programs may be running in the same box.