Client-Server Pattern

Learn via video courses
Topics Covered

Overview

As businesses continue to rely on interconnected data to execute daily operations, IT professionals have increasingly relied on client-server architecture to handle data. Using a client-server paradigm, you can efficiently access, exchange, and secure data across devices. The client-server model defines how devices access data stored on servers. It enables numerous clients to open apps or get files from a single server, ensuring consistency across all devices. Client-server architectures are commonly employed in all industries that rely on servers to store and access data.

Introduction

In this architecture, one particular computer is referred to as a server and is set aside to offer different services to other computers, referred to as clients. In layman's words, the server is a provider of services, while the client is a requester of services. As indicated in the diagram below, the client asks for information from the server, and the server answers the client's request. How does the Client-Server Model work

How Does the Client-Server Model Work?

The term "client-server model" refers to a technique in which not all required apps and files are put directly on an endpoint. Instead, some or all of these files or apps are installed on another server. Clients, such as laptops, desktops, tablets, or smartphones, then ask the remote server for a file or application. The server receives the request, verifies the credentials, and then provides the desired file to the client if everything checks out. In practice, the client-server model is the core operating principle of all data centres, including the cloud.

Communication between clients and servers is bidirectional. Servers can contact clients to confirm that they have the necessary patches and updates, or to see if they require anything more. Once the server has finished its task, it disconnects from the client to save bandwidth space on the network.

How Does the Browser Interact with the Servers?

To interact with the server, a client performs the following steps:

  • The user inputs the URL (Uniform Resource Locator) of the website or file in the browser's address bar.
  • The Browser then sends a request to the DNS Server (DOMAIN NAME SYSTEM).
  • The DNS Server looks up the WEB Server's address.
  • The DNS Server responds to the browser's request by providing the WEB Server's IP address.
  • The browser sends an HTTP/HTTPS request to the IP address of the WEB Server (which was provided by the DNS server).
  • The server sends the website's necessary files to the browser.
  • The browser then renders the files and displays the website.
  • This rendering is accomplished with the assistance of the DOM (Document Object Model) interpreter, CSS interpreter, and JS Engine, collectively referred to as the JIT (just in time) compilers.

Classification of the Client-Server Architecture

One-tier

A one-tier server runs an application on a single device. Because a one-tier server does not require a network connection, it can assist reduce network traffic.

Two-tier

These server systems consist of a client, server, and programme, as well as storing the graphical user interface (GUI) on the client's device while retaining the domain logic on the server. To show the GUI, this type of server employs advanced coding languages such as Java or C++.

Three-Tier Architecture

Three-tier servers combine a presentation tier or user interface layer, an application tier that works as a service layer performing sophisticated processing, and a data tier consisting of a database server holding data.

N-tier Architecture

An N-tier server comprises several layers that segregate responsibilities and manage dependencies, or physical tiers that run on different computers to improve system scalability. N-tier servers can be open-layer programming, in which layers can freely communicate, or closed-layer programming, in which one layer communicates only with the layer below.

Advantages of the Client-Server Model

  • Centralisation: The primary advantage of a client-server network is that it enables centralised management. All of the information is available in one location. This is particularly helpful because the network administrator controls management and administration. Any problem that emerges throughout the network can be handled in a single site. It is also easier to update data.
  • Adaptability:  Customers can quickly increase the number of clients or servers.
  • Protection: Data is effectively secured due to the centralised nature of a client-server network. As a result, only authorized users to have access to the data within login and password, as well as two-factor authentication. Furthermore, if the data is lost, the information can be recovered fast with a single backup.
  • Operation: File management is simple because all files are stored on a single server. A client-server network makes it simple to monitor and obtain required file records.

Disadvantages of the Client-Server Model

  • Security vulnerabilities: Clients are vulnerable to viruses, Trojans, and worms if they are present in the server or are uploaded to the server. Denial of Service (DOS) assaults are common on servers. During transmission, data packets might be faked or manipulated. Phishing or stealing a user's login credentials or other relevant information is frequent, as are MITM (Man in the Middle) attacks.
  • Overloading: When a large number of clients make a request at the same time, you run the danger of your connection collapsing or slowing down. Multiple servers and a load balancer may be required.
  • Cost: Servers are expensive.

Conclusion

Much of the information and programs on a device in the client-server architecture are actually stored or loaded on a remote server. A client requests data from a server when it needs to access a certain file or application. The server will then confirm that the request originated from a known device. Once a client's credentials have been verified, the server will download the requested information to the device. Communication between clients and servers is bidirectional.