Client

In the context of technology and computing, a client is the recipient of a server or the one requesting a specific service in a server type of system. In most cases, a client is located on a different computer terminal, which can be accessed through a network.[1] This term was first used for those devices that were not able to set up their networks as well as run their programs to connect to an individual remote computer through a network. These are called dumb terminals which were usually served with time-sharing mainframe processors.

In almost every business, corporations utilize clients by having their corporate network have a client computer for each of their employees that need to access the information from the servers, with each of the client computers connected towards the corporation’s host server. This server would contain files and information that are paramount towards the efficiency of the workplace while also giving access to the internet and intra-server content.[2]

When it comes to processing, any work that is done on the server is called “server-side” work while those any information and data that is being generated locally on the side of the client is called “client-side” work.[3]

Functionality

There are different variations of clients. Most clients are simple applications or even a complex whole system that accesses certain services through a server. In this case, a client can connect to a server through domain sockets, shared memory, or even through internet protocols which is the most common method of using transmitting information towards a client.

Classification

Clients are classified into three types:[4]

Thin Client

This is a client program that has a very minimal function that only uses the resources that are being provided by a host computer or server. Its job is pretty straight-forward: to display the results that the server generates. All it needs is a server to do the heavy-lifting (which is the processing). Thin clients can be viewed as a service towards customers via a user interface that is being served to the customers. Thin clients become a better option when the server has more processing power than any of its recipients. Thin client computing is one of the more natural ways of maintaining computational services without having to sacrifice the processing power of the recipient’s computer.

Thick or Fat Client

This client is the direct opposite of what the thin client is and refers to most of the processing activity that isn't reliant on the central mainframe servers that process the data and information. However, it may need to a source of information (at least one server) to upload and update data, or even administrate the program itself. In most cases, anti-virus programs belong to this type of category since they can work independently without the need to be continuously connected towards the server unless there is a scheduled update and specific downloads that be made. Downloads and uploads have to be made for the program, to be aware of certain viruses while also relaying information back to the source server. Thick clients are also implemented in workplaces where the host or primary server has a lot of network speed, a limited processing power, and a limited amount of storage. This is because thick clients can run almost independently.

Hybrid Client

This client contains some traits that are found in both thin and thick clients. The hybrid client can work independently but might still have to rely on a source server for essential data or the storage of such data.

Client-side vs. Server-side work

Websites run in either the client-side or the server-side - with the client-side usually called the front-end and the server-side the back-end. The client of that website refers to the web browser first before viewing it. In most cases, the coding languages that are designed for creating websites run on either the server or client-side which largely depends on how they operate.[1:1]

When a client generates a request for a specified web page, that request has to be first processed through a web server. If that request is a server-side script (in this case, Perl or PHP) before that information is being returned to the client, the script is executed within the server and the results of the script is returned to the client.[5]

After the client receives the returned information from the server that it contains, a client-side script (such as JavaScript) in the user’s computer’s browser will then execute the script before displaying it in the web page.

Client-side languages have the following traits:[5:1]

  • Usually done mainly using JavaScript, in addition to HTML and CSS coding as well.4
  • This is because JavaScript runs scripts on a computer right after the page has loaded.4

Server-side coding and languages have the following traits:[3:1]

  • Server-side languages run scripts even before the HTML is loaded.
  • There is a wide range of codes that are being used today. This includes PHP, which is one of the most popular, Ruby on Rails, ASP.NET and a multitude of other languages.
  • These are called server-side languages since the scripts are not actually on the user’s computer, but are on the host server that sends the HTML code.

In essence, most websites use both the client-side and the server-side languages. Although both of these sides can perform the primary functions with any problem, some features can only be done by client-side languages and a few other things that can also be done by the server-side languages.

Simply put, front-end scripting gives an advantage on anything that requires interaction with the user, an example of which is a video game. Back-end scripting is useful when it comes to complex and dynamic data that has to be loaded, an example like notifying a user that they are already logged in within the device or even in another device.

Differences between Web Server and Web Client

In terms of how they function, both the web server and the web client (the recipient) have different modes of operation. Since we have discussed what the differences between server-side work and client-side work, we have to know how these two work hand-in-hand to deliver the content to the user.[4:1]

Web Server

Basically, this is a system that deals with the request of the recipient while also providing the different forms of content for the web pages through the HyperText Transfer Protocol (HTTP) and sends the files over through the File Transfer Protocol (FTP). Once the user types in a URL on the address bar of the browser, the web server will be the one to send a request to the location where the domain is saved. Then the information would then be requested is accessed and provided by a host server. The processing and the provision of a webpage to the recipient (client) is the primary function of the web page.

Web Client

The web client can be likened to that of software or a web browser which is either installed to the computer or already built-in towards the system of the computer (such as IE). These browsers are then used to interact with the web server on the request of the user. In this case, it is a consumer software (produced and developed by a company to tailor to users) which retrieves data from servers. A client and a server are two significant components of a connection while two distinct machines also operate these components. A web client mainly requests information whereas the web server is essentially a computer/processor that is specifically designed to accept the requests from remote computers and send this information over to the requesting party. The main function of web clients is to be the ‘window’ in which individuals will be viewing the information that is being processed by the server-side content. A webhost would then allow connections to the server to view the stored information.

When it comes to developing a website, programmers, as well as web developers have to know where the steady stream of information is coming from. Being able to discern the difference between server-side and client-side works will increase the efficiency of the web page that the user is maintaining.[1:2]If a certain page encounters problems when it comes to the streaming of content and media platforms that are present on the web page, then it will become easier for the user and the web developer to troubleshoot the problem since they will already have an overview of the advantages and the disadvantages of server-side and client-side works and scripts.

Furthermore, being able to discern the differences between the different types of clients will give developers an advantage on how they will be able to specifically tailor their client to their audience and demographic while optimizing the capabilities of their client based on the needs of their users.


  1. https://www.computerhope.com/jargon/c/client.htm ↩︎ ↩︎ ↩︎

  2. https://www.techopedia.com/definition/437/client ↩︎

  3. https://learntomato.flashrouters.com/what-is-a-client-what-is-a-server-what-is-a-host/ ↩︎ ↩︎

  4. https://sites.google.com/site/clientserverarchitecture/clients-and-their-types ↩︎ ↩︎

  5. https://www.codeconquest.com/website/client-side-vs-server-side/ ↩︎ ↩︎