1 Client-server architecture
In the early days of the Internet, the client-server architecture became widespread, although there were others. Its meaning lies in the fact that all network participants are divided into two logical parts: client and server.
The task of the server (server, from serve - to serve) is to serve client requests. The server does most of the work, stores all the necessary data and monitors their integrity. And although there are computers that call servers, usually the terms “client” and “server” mean software.
The task of the client is to live in his own pleasure. When the client needs some data from the server, it sends a request to it. After some time, he receives a response from the server and can do something important with the received data.
Requests are always initiated by the client. The communication mode always takes place in the form of a request-response. In a sense, this is a synonym for the concept of “client-server” .
And what are the alternatives? Well, firstly, peer-to-peer networks, where all participants are equal (they are also called peer-to-peer networks). If you and your friend are chatting or texting, then this is just an example of a peer-to-peer network. What is the difference?
You can write a message and get no response, and then send a new one, and so on. Your friend can be the initiator of the dialogue. Either party may write first. All information about the dialogue is stored by both parties, no one is obliged to answer.
Advantages of client-server architecture:
Reliability . Clients can be anywhere, even on untrusted platforms. Windows on your computer can crash, your iPhone can be stolen, and the data that is stored in the cloud is not going anywhere.
Weak and cheap clients . If you need to make a video editing on your phone, then you upload it to the server and perform it on the server facilities. The client can be a cheap tool.
Balanced load . Each client has an individual usage schedule, which can be very erratic. The server receives requests from thousands of clients, its load is averaged and therefore better predictable.
![](https://cdn.codegym.cc/images/article/81d406ee-7c33-4d40-8d1e-b2574d12e217/512.jpeg)