The term client/server was coined in the 1980s to describe a distributed computing model in which client applications request services from server processes. Client/server is essentially a relationship between processes running on separate computers interconnected by a computer network. The server process is the provider of services and the client process a consumer, so there is a clear separation of function, in terms of hardware and software.
Server Hardware
A server computer on a client/server network can be considered both hardware and software. In terms of hardware, a dedicated server computer is typically a personal computer or workstation. However, a server may be required to service dozens or even hundreds of clients at the same time, so it typically has a faster processor, more memory and more storage space than a client computer.
Video of the Day
Server Software
A server computer runs a special operating system, such as Microsoft Windows Server, Linux or Unix, that is designed specifically to facilitate the sharing of its resources. Depending on the exact operational function, a server can allow users to share files and printers over a network and provide access to the Internet. If resources are on more than one server, individual servers can specialize in one particular task -- or provide redundancy or duplication of function -- in the event of server failure.
Client
A client computer is typically a regular personal computer running an operating system such as Windows XP, Windows Vista or Windows 7. The operating system includes the client software, such as electronic mail and Internet browsing software, which allows the client computer to access and interact with the resources shared by the server. A client computer only communicates directly with servers, not other clients. It is, however, capable of information processing in its own right, a fact that distinguishes it from the dumb terminal used in centralized, mainframe computing systems.
Fat & Thin Clients
Client computers can be described as "fat" or "thin," depending on where the execution and business logic of a software application is performed. A fat client has the ability to control data. Execution is performed mainly on the client, while the server is responsible for sending data to the client and back again. A thin client, on the other hand, is restricted to what is known as the presentation layer of the software application, which accepts data from the server and edits it, while most of the execution is performed on the server.