- In computers, the word client is used to refer to any hardware or software that uses a service provided by a server in a client-server architecture of computer networks. In most cases, the server is located on a system other than the one with the client software or hardware.
- The client requests the server to provide access to a service. The server is responsible for providing the requested resource or service to the user. The client-end device generally includes personal computers, desktops, and laptops or smartphones.
- The client is dependent on the server. The part of the operation depends upon sending a request to another program or system. It is decided by the other program or system whether access to the service or resource will be provided to the client or not.
- For instance, web browsers act as clients, and the web servers that render the service act as the client. They retrieve web pages from the internet and display them on the user's screen.
- The email clients can access their emails by sending a request to the mail servers. The software that enables the user to chat online has a variety of clients, which can differ from the chat protocol used for facilitating the conversation.
- Online Multiplayer Games also run at the client end. The term client is also used for the devices that run the client software.
- A client is an important component in the client-server architecture used in various service rendering applications. The client and server can run on the same machine but are mostly located on different machines. The communication between the client and server is performed by using inter-process communication techniques.
- When the client and server applications are connected with internet sockets, the application can connect to a service from a remote system using the internet protocol suite. Potential clients do the initiation of the communication. But the response depends upon the server.
- The term was originally used for the devices used for executing their standalone applications. The programs can interact with remote systems by connecting them with a network. These systems were clients in the time-sharing mainframe system.
Types of Clients in Computing
||Dependent on Local Storage
||Dependent on Local CPU
The clients in a computer network can be distinguished into the following three types:
- Thick Client
- Thin Client
- Diskless Nodes
Thick Clients are often referred to as the rich or the fat clients. These clients perform most of the processing by themselves. These clients deal with bulk data and have efficient processors. They do not rely on the servers to process the information provided by them. The most common example of a fat client is a personal computer. Personal computer provides numerous features to the user without heavily relying on the server for those services.
For example, A computer that is either using art software that can share the result directly to the network or a device that is being used to play multiplayer online games is a thick client. A desktop that operates similarly to a standalone machine that sends or receives files through the connected network is referred to as a workstation.
It is also referred to as a minimal client. It utilizes the resources of the host computer. Mostly thin client devices only represent the data processed by the application server. The server side is responsible for performing any processing on the data.
For example, a device using Google docs or MS Office web application is a thin client.
It is a hybrid of thin and thick Clients. It has features of both the above models. As in thick clients, the bulk data is processed by the client, but it relies on the server for storing the persistent data. This approach is useful as it provides the above models' features. It provides multimedia support and high performance as provided by the fat client and also is highly flexible and easily manageable for a thin client.
For example, a device that plays online games, such as Grand Theft Auto, is a diskless node.
These clients are similar to thin clients but slimmer, and the cost of a thin client is less than that of a thin client. They are more energy efficient as they need less than thick or thin clients. They do not require to be configured. There is no storage to store the data in a zero-client system.
Interaction Between a Client and a Server
- Both sides play a crucial role in facilitating communication in a client-server architecture. The client-side initiates the communication by sending a request to the server. The request can be for retrieving data or resources unavailable in the client system.
- The client and server may or may not be located in the same area. The requirement to facilitate communication between the client and the server is that both devices should be connected via a network. When the server and the client are both located on the same machine, the communication is performed through interprocess communication.
- Both the client and server perform different tasks. A distributed application framework determines the distinction between the Client and server tasks. The tasks performed by the client system are known as the client side, while the tasks performed by the server are known as the server side.
- The function of servers includes answering the client's request and providing the requested resources, such as files, data, and network access to the client. They are also used to store or process bulk data.
- On the server side, the server uses several programs responsible for sharing the resources and providing the client with the requested service. The client and server communication follows a request and response pattern. The client begins the communication by sending a request and the server responds to the request. Communication follows a set of rules known as communication protocols.
- Protocols such as Transmission Control Protocol/ Internet Protocol are defined to facilitate communication between clients and servers connected via the internet. Every device on the network is required to follow these protocols to use the internet.
- The TCP protocol is responsible for maintaining the communication between the client and the server. It ensures that the connection s not interrupted at the end of the message exchange. It also defines how the data will be transferred from one device to another. It sends and receives the packets and manages them if they are lost during the transfer.
- There may be numerous requests sent to the server by different or the same client at the same time. In that case, the server arranges the requests into a schedule based on the priority of the request.
- The client can manage access to the servers by using access control tools. This allows the client to connect or disconnect with a server.
Client Side and Server Side
Same to clients, a server can be of various types as well. The server can be an application server or a different system, or a database or web application server. A desktop may require a server when it cannot perform a function independently. The system requests the missing resources from other systems. Thus, when the system requests a service, it is known as the client, and the system that provides the service is known as the server.
Example of Client and Server Architecture
A device connected to the network and sharing resources via the network acts as a client or a server in that network. There can be several client-server relationships, such as web, file or resource sharing, or mailing services.
When a user uses a web browser to gather information from the internet, then the web browser acts as a client on the internet and sends a request for the web pages to the server. The server responds to the client's request by providing or denying access to the web pages to the user. The server returns an HTML (Hypertext Markup Language) file to the browser.
The system manages the request and accepts or rejects the request of the computer. If accepted, it sends the requested HTML file to the server. They are responsible for performing tasks such as storing bulk data and managing the data files. It allows the user to share vast data over a virtual network without physically sharing the files. Some common examples of file servers are storage devices connected to a network or a computer used for hosting the files shared on the internet.
Files Transfer Protocol is the protocol that enables the user to share the files among the systems that are connected using TCP/IP connections. It depends on a command channel that controls the conversation and the data channel that is responsible for sharing the file.