The term "Client-Server model" has several uses but all are based around the same concept of using a client system to access a centralized server in order to use a service. When a network protocol is described as being 'client-server', we mean that the application runs as a service on a server, and a client version of the application is used to access the service. There are some very specific characteristics of a client server implementation:
- The server provides services and data
- The server abstracts communication and information access, allowing clients to make simplified requests for services and data.
- The client handles all aspects of data presentation and the user's interface.
Client
A client is any system, software or process that communicates with the server, provides the user interface and handles all aspects of the presentation of data and services to the user. Clients are often described as thick or thin.
Thick Client
This is a full implementation of a client. When speaking of a software client, a 'thick client' usually refers to an installable binary application that runs natively on the local computer hardware.
Thin Client
A thin client is a more limited implementation of a client. When speaking of a software client, a 'thin client' usually refers to a Java or Flash applet designed to run in a web browser. For this reason, thin clients are often called "web clients". When speaking of a hardware system, a thin client refers to a computer that boots from firmware and loads it's operating system from the server. This type of thin client provides basic video output, a user input device and connectivity to the server providing the operating system and software.
Web Client
A web client is a variation of a thin client that is comprised of a web browser and the web browser is usually running an application written some combination of JavaScript, Java and/or Flash.
Server
The server provides the services, resources and information to clients, including the client software and interface. The server also controls most aspects of the communication and the resources provided. Network protocols utilizing the client-server model will launch at startup of the computer server and 'listen' for client connection requests.
Client Server Network
The term 'client-server network' is one where a centralized server provides network services to other clients on the network. Such a network is described as a 'domain' in Linux, Macintosh, UNIX, and Windows operating systems.