Client-Server Model

Client-Server Model

·

4 min read

What is a Client-Server Model and what are the benefits of hosting a distribution application on your computer server. First, the server model is a structured application that distributes workload resources between servers and clients. A server is the provider of the resource while the client is the requester of the service. Most often both the client and server are located on the same hardware. The server host runs one or more server programs that shares and communicates a request with a client. Generally speaking the server would be the IP address that sends the request to a client which then sends that request to a computer laptop, phone or tablet. The server processes the application which then sends the request to a client, which can be many different services such as emails, web applications, or software programs. The image below will give a visual look of what a client-server model is.

How the Client-Server Model works?

image0.jpeg

In this diagram the server acts as the main database that stores and holds the information before it's requested from the client. An example of a server or a database could be a DNS(Domain Name Server) or it can be a database which stores client confidential information such as MongoDB Postgre SQL or MYSQL.

  • The server acts as a host to send http request to a client. If the client search for a specific domain or url, the main purpose of the server is to fetch the unique IP address of the website to return that request to a client. This is the exact function of Google search engine. It uses unique tagline to give the client a list of websites that corresponds with what the client requested. It then gives a list of websites that can help the client find information that can help them of their service or request.

  • The client is the unique individual or machine that requests a service. The communication of the server is what the client uses to find or search for information. The client uses different networks such as Google search engine to retrieve information - the service.

The diagram below will give a better visualization of http requests over DNS and web servers.

image0-2.jpeg

  • DNS searches the address of the Web Server

  • Sends the response of the URL to client

  • The website is then transferred through the network to the client

  • The IP address is retrieved and the client's response is satisfied

The Benefits of Client-Server Model

  • Centralization - client server network has centralized control(all information stored in one location)

  • Security - data is well protected due to its centralized architecture

  • Scalability - users can increase workloads and resources as intended

  • Management - Files are stored in a single location which makes it more accessible

The Vulnerabilities of Client-Server Model

  • Traffic Congestion - if too many clients request from the same server it's due to crash

  • Robustness - if servers happen to undergo failure or interference, networks tend to be disrupted

  • Cost - the cost of installing and maintaining network operations are high.

  • Maintenance - when servers are installed they require a lot surveillance, problems must be solved immediately to avoid long periods of downtime for client use

A centralized computing system is one of many ways to start or learn about computer software programming. The same architecture is used when programming. The client server model uses the same model when inputing algorithms or codes into the terminal. The main purpose is for the computer or local machine to retrieve a request correspond that request with a network and send a response back to the client. Ideally you can build websites you can host websites or you can go to the more advance stages of computing with peering connections over a private IP address. You can use different ports to establish an open communication between the server and the application itself if you are designing or building a web app. I used my expertise as a backend developer to register an IP address to host different applications across my architecture. Some of the applications I linked were NGINX, HAPROXY, CADDY Servers and more. In my upcoming blog post I will give my take on how you open tcp ports on a local server for web development Ingress services, eco-systems and network services. Mainly these applications are used for performance testing and security. The time is takes to retrieve information over a network and how well the applications runs without crashing are just some of the basics as a backend developer. Also, security when flowing traffic through a network to block phishes ads and DDoS attacks are important for overall maintenance of the server. Implementing Zero-trust Policies and network restrictions are key additional features for management.

CONCLUSION

In my development cycle I used this model when building my computer architecture. Understanding the basics and main purpose, service and communication between client side and server side production can open many paths as a software engineer. If you want to build websites, software or host local websites as development then you should first learn the basics of this architecture.