A server is a hardware and software which serves a client (program/computer). You can compare a server to a waiter at a restaurant. A waiter takes your request and provides services accordingly. Similarly, a server takes requests from a client and responds. For instance, when you type linuxsimply.com on your browser, your computer makes a request to a web server, which responds by sending the necessary HTML, and CSS resources. As a result, you can see the website on your browser. In this article, I will try to give you an in-depth idea of what is servers in the computer network.
What is a Server?
When we think about servers, we often imagine powerful computers situated in data centers. However, the reality is that anything can act as a server, even a program on your computer, while another program acts as the client. The server is more of a role than a physical entity. However, there is a good reason why servers are often thought of as specialized computers. They are the backbone of the internet and they keep it up and running. For purposes like web hosting, data management, and email services, you need a high level of computing power and backup systems. A regular computer won’t be able to meet those requirements. That is why corporations (small or large) invest a lot in their server facilities to keep their services running smoothly.
IP Address and Port of a Server
You can access a server in two ways. The first way is to physically visit the location where the server is housed. However, it isn’t very practical. There is another way to access a server which is the IP address. The IP or Internet Protocol address is a unique numerical code to identify a device on the Internet. A server can have two types of IP addresses.
- Static IP Address: The IP address doesn’t change over time. It is manually assigned to the server.
- Dynamic IP address: The IP address changes each time the server is connected to the internet.
A static IP address is preferable for a server. If you know the IP address of a server, you can access it through the Internet. But remember, there are different types of servers providing different types of services, and a port is specified for each service. For instance, port 80 is used for web serving. So if you want to access a web server, you need to use its IP address and port 80. I have listed some of the ports for different types of servers below:
- Web Server (HTTP): Port 80
- Web Server (HTTPS ): Port 443
- SSH Server: Port 22
- FTP Server: Port 20 and Port 21
- SMTP Server: Port 25
- DNS Server: Port 53
A server has two types of components – hardware and software. If the hardware is the body of a server, the software is its soul.
A server contains similar hardware components to our regular computer but with added features and advanced capabilities. One of the main features of a server is redundancy. Redundancy denotes having extra components so that they can take over when one component fails. As a result, a server can provide uninterrupted service. Here I have listed some of the key components of a server.
- CPU: The server’s CPU (Central Processing Unit) has multiple cores and high clock speeds which give them more computational capability. It also has features like hyper–threading or virtualization which allow them to run multiple virtual CPUs on a single physical CPU. For instance, Intel Xeon processors are specially designed for servers. They have a higher core number and cache size than Intel Core processors. Moreover, they have advanced visualization features.
- RAM: The server’s RAM (Random Access Memory) has a higher capacity than a regular computer. It has a feature called ECC (Error-Correcting Code). The ECC feature detects errors in stored data and corrects that as restarting a server isn’t a feasible option most of the time. Some server has memory mirroring which duplicates the RAM to provide redundancy. Moreover, some servers have “Hot-swappable memory” that can be replaced while the server is running.
- Motherboard: A server motherboard has multiple CPU sockets. It gives a server more computational power. Furthermore, if a CPU fails, the server won’t shut down.
- HDD/SSD: A server uses hard disk drives (HDD) or solid-state drives (SSD) for data storage. However, the storage capacity is huge compared to a typical computer.
- Power supply: The server’s power supply has features like redundant power supply and UPS (Uninterruptible Power Supply) so that the server can run even in a power outage.
Hardware was only the first part of this story. The second part is the software. Software is what makes the hardware useful. Here is a list of some of the software components.
- Operating System(OS): The operating system is one of the most important parts of a server. The OS of our desktop or laptop can handle a limited number of connections. Whereas, a server OS is developed in a way that it can make thousands of connections. Moreover, a server OS provides an environment for other software to run. There are some server OSs available like Windows Server, and Linux When we refer to “Linux Server”, we mean a server having a Linux Distro (Ubuntu, RHEL, CentOS, etc.) as OS.
- Server Software: There are different types of servers. For instance, a web server hosts websites. For that purpose, it needs dedicated software developed for web serving. The same goes for data servers and email servers.
- Backup and Recovery Software: These types of softwares backup and restore data in case of disaster.
- Security Software: A server needs to be secure and there are some softwares to serve that purpose.
Physical Server and Virtual Server
A physical server means a physical computer whereas the whole computer acts as a single server. On the other hand, a virtual server is a software-based server that is created by partitioning the resources of the physical server. That means you can have multiple servers with their own operating system and applications in a single server computer. It is beneficial for better resource utilization, scalability, and flexibility. Moreover, it saves hardware energy and maintenance costs. However, a virtual server may have lower performance than a physical server because the virtualization process occupies some resources.
Types of Servers
There are numerous types of servers. I have listed some of the common servers here.
- Web Server: It hosts websites and applications.
- File Server: It stores and manages files. It can be used for storage, backup, and file sharing.
- Mail Server: It manages email messages. For this server, sending and receiving emails is possible.
- Application Server: It provides a platform for running and managing applications.
- Database Server: It uses database management software to store and manage large amounts of data.
- Game Server: This server provides a platform for players to connect and play games Multiplayer online games are a reality because of these servers.
- DNS Server: The DNS (Domain Name System) server translates the domain name (website name) into an IP address. That is why you can view a website by typing its name in your web browser without worrying about its IP address.
- Proxy Server: It is an intermediate layer between a server and its clients. It handles traffic and provides extra security.
Server and Personal Computer
You can turn your PC into a server. It is useful if you want to share some files or access your computer from a remote location for instance. However, it is not a feasible option for corporate use as it can only handle a limited number of communications. Furthermore, it has less computing power, less storage, and no extra component. So if a component fails, it may cause disaster and you need to shut down the PC to replace it. But a server needs to be up and running all the time. On the other hand, a real server can handle a lot of communications simultaneously. It comes with huge computational capabilities and storage. Moreover, it has redundancies to keep it running non-stop.
In this article, I have tried to explain what a is server in simple terms. The server is a crucial part of the whole internet. If you are considering IT as a career, you should definitely know about what a is server and how is it different from a typical computer.