For example, at this very instant your computer is acting as a client requesting this webpage from the MakeUseOf server, which is then happily responding back with the page you requested. The client then receives the page and shows it to you, enabling you to read this wonderful article!
That is the gist of it. If you ever had to explain yourself or someone else what client server networking or client server computing is, explaining it with the above example will suffice. If however you are interested in diving a little bit deeper into the definition of a client server network, you are most welcome to follow along.
How Do Clients & Servers Communicate?
I mentioned in the example above that “your computer requests the MakeUseOf server for a webpage”. You might ask how does that happen? Do they communicate in English or German or French? Actually none of those. There is no single language of communication either. Clients and Servers use special messages, which conform to a common protocol to communicate with each other.
The protocol and message format must be agreed upon in advance or else there can be no communication. As an example the “http://” you type into your browser’s address bar specifies that you are using HTTP or HyperText Transfer Protocol to communicate with the server. The image above shows a sample HTTP request when I wanted to go to Google India.
Of Ports & Servers
Okay, now you know that your computer can speak HTTP. So does that mean that all the communication over the Internet is using HTTP? Or else how would my computer know when to use which protocol? These are the questions I will attempt to answer in this section. First off let me clear up some things – so far I have presented a 10,000 feet view of the whole client server networking paradigm, in which the computers were acting either as a client or a server.
It’s now time to zoom in and have a detailed look. Going back to the webpage example, it is actually your web browser that is acting as the true client. Since you can run multiple applications together on your computer, your computer can actually act as a client to multiple servers or get ready for this – with appropriate software, it can act as a client and a server as well.
Still confused by this definition of a client server network? Allow me to clarify. Say you have Google Chrome and FileZilla (an FTP client, FTP is another protocol), now your computer can connect to a web server using HTTP and an FTP server, thus acting as a client and requesting content from two servers. Similarly install the appropriate software and you can communicate with any kind of server. The protocol implementation is all programmed into these applications.
Now, if side by side you also install something like IIS or Apache on your computer, then your computer can act as a server to other clients and serve requests for webpages (both IIS and Apache are web server software). In fact you can try “http://localhost” in your web browser and it will connect to the web server software you installed on your computer to display a webpage.
You can even install multiple server software on your computer. So for example a single computer can be used as a web server to serve webpages and as an FTP server to transfer files. The server software essentially listens to what are called ports on your computer. Whenever a request comes on a designated port, the appropriate server takes action and responds. Apache for instance listens to port 80 and browsers know to send requests to port 80 by default. So whenever a request arrives on port 80 Apache would respond back with a webpage.
So to summarize it all, software on your computer uses your computer’s hardware to initiate a request in a specific format. This request is then transmitted over the network to the appropriate server (using IP addresses) which then uses the installed server software to do some processing and responds with the results.