A client is a computer program that depends upon another program to function. Usually, client software receives data or instructions from a remote program called a server. Some thin clients actually have critical software components execute on the remote machine to conserve local resources or software licenses. If the computer running the host software is accessed over a network, then the machine hosting it is also referred to as a server. If the server software is running in the background of the client machine, then it is referred to as a daemon. Examples of common client software used in everyday personal computing include web browsers, email clients, instant messenger chat clients, and bittorrent clients.
When someone sends you an email, but you are not connected to the Internet, the email is stored on your ISP's mail server. You need a program that will connect to that server and fetch the mail. That program (for instance Thunderbird) is termed a client because it is connecting to the remote server and fetching the data (your email). Similarly, when you click a link on a webpage or enter a URL into a web browser, the browser (for instance Firefox) connects to the server hosting the website and requests the page. Thus, a web browser is also client software. Most chat protocols have two (or more) clients connected simultaneously to a central server. Although it often appears that messages are sent directly from one chat program (for instance ICQ) to another, the messages are actually deposited on a server and retrieved microseconds later.
Thin clients are computer terminals in which very little software or data is stored on the local machine. These machines rely almost entirely upon a central server accessed over a network for computing resources, software, and data. One advantage of this configuration is that software must be licensed and maintained on the central server only. As an operating system and CAD software can easily cost more than the hardware of three or more computers, thin client-server architectures can cut the cost of computer networks in half in many institutions. Another advantage is that older, outdated computer equipment that is not capable of running new software can be used as a thin client in most instances. This increases the effective lifespan of computer hardware.
Programming Technology Terminology Questions