What is a client?
Used in home and corporate networks, a client is any computer hardware or software device that requests access to a service provided by a server. Clients are typically seen as the requesting program or user in a client-server architecture. Client end-user devices typically include desktop computers, laptops and smartphones.
In a computer network, a client in a client-server model is what requests a service or resource from a server. The server can be located on or off premises.
How does a client interact with a server?
In a client-server architecture, clients interact with servers by making requests for data or resources that the client is not capable of providing. Clients and servers can be located in different areas and connect via a network. They can also be located on the same machine and connect by interprocess communications.
A distributed application framework divides tasks between servers and clients. Tasks that can be completed by the client are typically referred to as client-side, while tasks completed by a server are referred to as server-side.
Servers typically provide resources such as files, data, internet access, external storage or processing power. The server puts one or more programs in charge of distributing those services to requesting clients.
Clients and servers communicate in a request-response messaging pattern defined by a communication protocol, such as Transmission Control Protocol/Internet Protocol (TCP/IP). The protocol defines the language and dialog patterns used. TCP, for example, maintains a connection between client and server until the end of a message exchange. TCP also determines how to distribute application data, transfers and receives packets, and manages any dropped packets. If a server receives a large number of requests at once, the requests are organized in a scheduling system based on priority. With client access control tools, a user can manage access to servers.
Client-side vs. server-side
The client-side is an action or operation that occurs on the user's side, while server-side refers to actions or operations that occur on a server.
A server, for example, could be an Application Server, a separate computer, a database server or a web server. When a program or device does not have the resources to complete an operation, it will act as a client, making a request to a server, and that operation will happen server-side.
Types of clients
The following examines the four ways to define the different types of clients:
- Thick client. Thick clients provide a majority of resources and data processing. These clients rely only lightly on a server; instead, they perform most operations client-side.
- Thin client. These lightweight clients rely heavily on a server for resources and to perform most of the data processing.
- Hybrid client. Hybrid clients are a combination of both thin and thick clients. This type of client processes data locally but relies on a server to store persistent data.
- Zero client. Zero clients are slimmer and more cost-effective than thin clients. These client devices require no configuration and have nothing stored on them. They also use less power than thick or thin clients.
Examples of client-server relationships include web, file and mail servers. A web browser is essentially a client that requests pages from servers all over the web. The browser is the client that sends requests while a server in another location returns the Hypertext Markup Language (HTML) file. The computer that handles the request and sends back the HTML file is a server.
File servers are computers that are responsible for the storage and management of data files, enabling users to share information over a network without having to physically transfer the files. Examples of a file server include a network attached storage device or a separate computer that can host shared files.
File Transfer Protocol is a client-server network protocol that is used to transmit files between computers over TCP/IP connections. The client-server protocol relies on two communications channels between the client and server -- a command channel for controlling the conversation and a data channel for transmitting file content.
Learn more about thin, thick and zero clients in this article.