A server is a a software program, or the computer on which that program runs, that provides a specific kind of service to client software running on the same computer or other computers on a network.
The client-server model is an architecture (i.e., a system design) that divides processing between clients and servers that can run on the same machine or on different machines on the same network. It is a major element of modern operating system and network design.
The client provides the user interface, such as a GUI (graphical user interface), and performs some or all of the processing on requests it makes from the server, which maintains the data and processes the requests.
An example is a web server, which stores files related to web sites and serves (i.e., sends) them across the Internet to clients (i.e., web browsers) when requested by a user. By far the most popular web server program is Apache, which is claimed to host more than 68 percent of all web sites on the Internet.
As is the case with other server software, Apache can run on computers which are used for multiple purposes, such as ordinary desktop computers, as well as on dedicated hardware.
A file server is software, or hardware plus software, that is dedicated to storing files and making them accessible for reading and writing to clients (i.e., users) across a network. A print server is software or hardware that manages one or more printers. A network server manages network traffic. A name server maps user and computer names to machine addresses. A database server allows clients to interact with a database. An application server runs applications for clients.
A single computer can have multiple server software applications running on it. Also, it is possible for a computer to be both a client and a server simultaneously; this is accomplished by connecting to itself in the same way that a separate computer would.
Many large enterprises employ numerous dedicated server machines. A collection of servers in one location is commonly referred to as a server farm. If very heavy traffic is expected, load balancing is usually employed to distribute the requests among the various servers so that no single machine is overwhelmed.
Due to the continual demand for ever more powerful servers in ever decreasing spaces, higher density configurations have been developed. In particular, blade server incorporate a number of sets of server hardware, sometimes as many as nine, each housed inside a high-density module known as a blade, within the space typically occupied by a single computer.
Confusion often arises with regard to the use of the term server in the context of the X Window System, an extensively used and free client-server system for managing GUIs (but not for creating the GUI itself) on single computers and on networks of computers. The X server resides on each local computer (i.e., those used directly by users) instead of on a remote computer, where it provides access to computer input and output devices (e.g., monitors, keyboards and mice) and performs basic graphics functions. The X clients are the application programs, and they can run on either some other computer on the network and serve many machines containing X servers or they can run on the same machines as the X servers.