Client/server architecture is an important concept for system design newbies. You may think it like the foundation of how the modern internet works. Nowadays, digital devices like computers, laptops, mobile devices are everywhere. Client-server architecture is the foundation of knowing how these computers talk to one another.
What do client and server mean in the client-server model? For simplification, we may say that a client is a machine that requests some data or service. And the server returns some service or data to the client. Servers listen to the incoming network requests. So, the client-server model is a modern system designed in such a way that clients request data or service from the server, and the servers provide data or service to the client.
Now we may check how this architecture works with an example. For example, what happens when we type www.medium.com in our browser and press the enter button. The client device, our own laptop or computer, does not really know what the medium.com URL means. The browser needs to communicate with the server machine where the medium URL is located.
The users who type a specific URL in this system are clients. The server provides information through the internet. So, these computers can be in different parts of the world.
A specific set of rules are needed for the interaction of two systems. The most popular are the HTTP and HTTPS.
The client computers request the required information from the server. That could be in any structure of formatted data. Mainly implemented and popular formats are in XML and JSON. Server and client request and respond mostly using these formats.
Now, we are going a bit into detail into what happens after the user types a URL in a browser. How does the browser know where the server is located? The browser performs a DNS query.