What is a server?
You don’t need any prerequisite to read this tutorial, let’s start!
A server is a computer program which is waiting for a request from other computer programs.
In this case, this computer program is a program which provides services. This server is waiting for a request from another program to answer properly to the request and return data.
A server purpose is to serve a client, it is how we call the program which send a request to the server.
We cannot dissociate a server and a client, they both constitute the client/server model.
Does that mean the clients can connect just to one server?
Nop, if the client program is designed to talk with the type-A server, this client will be able to talk with any type-A server, they are both completely independent.
How do they communicate together?
Excellent question Alfred!
To take the same example than above, client and server has to know the type-A language to communicate, which is called more generically a protocol.
This is a bit complicated for now, “what is a protocol?” will have its own page!
Also, a request can be external or internal:
– External means the server is connected to a network and the client is somewhere in another machine.
– Internal means the client and the server are on the same machine, sometimes that happen. You can watch the example in video!
- Web Server: a program which manages the website requests and return web pages
- Database Server: a program managing databases
In a small structure, it is not rare to find the database server and the web server on the same computer.
Let’s imagine on this computer there is a small website with a database… not Facebook or YouTube but the website of you neighbour who wants to show to the world his pictures in Philippines drinking a cocktail with toes in fan.
Your neighbour knows a bit internet and servers and he has created his own server.
And now, let’s imagine you want to see his pictures and you type on a browser his website address…
In that case, the external request is you (the user) who are doing a request to the web server, and the internal request is the web server which does the request to the database server.
Once the web server finished to request the database and finished to generated the web page, it send the response to your browser.
It exists dozens of different types:
- Mail Server: a program managing mails
- Proxy Server: a program which allow a user to connect to a network through itself
- Print Server: a program managing print requests
- Chat Server: a program handling and maintaining live chatting
- FTP Server: a program which stocks files of the users (FTP: File Transfer Protocol)
- Identity Server: a program managing identity of the user and access control, useful in a company private network.
- VPN Server: a program making encrypted private network through another network, thus it can create a Virtual Private Network (VPN).
- DNS Server: a program making the link between the name of the website and its address physique on the planet.
- And many others…
This definition is also historical! A long time a ago…
Not that long…
In 1969 when internet was just released for the US government, the first computer connected to the parent of internet (ARPANET) had to purpose to send and receive messages. Yes, just messages, that’s it!
There was a program to write messages and another to receives them, but to received a message, the computer had to be turned on.
At this time, the term “server” referred to a program which was waiting for a message and it has been derived from the term “serving-host”.
Nowadays, we also call the computer a server if its main purpose is to provide a service to other computers.
It is used to provide a service usually available 24/7 and this service has to be accessible sometimes by hundreds thousand other programs at the same time.
To do that, the engineers modified a bit the computers to respond to their needs.
Usually, they get a special OS like Windows server or a Linux server and its hardware is also upgraded: high-capacity RAM, high-performance processor, multiple and high-capacity hard-disks and support a high connection density.
In clear, a server is a computer but modified for a special purpose.
Most of time, this machine doesn’t need monitor. Indeed, you can get access remotely and it is not useful to get a graphical layer.
Thus, a server is:
This is a datacenter with a lot of them:
It could also looks like that:
Or in a personal project:
But definitely not that:
Thanks for reading.
Add a comment if you have any questions.