A server is a computer or program dedicated to providing services to other users (clients) on a network. Servers are centralized machines that allow connection from multiple clients they serve; the connection could be over the internet or a Local Area Network.
Since we cannot have all the files and services we need on our computer, those who have those services need a means of serving them to us. Whenever you connect to any server, you connect your device to someone else’s computer. For example, we have the CloudDevelop website saved on someone else’s computer, but you can view it because the server has given you access to the service.
How A Server Works
Servers work by listening to requests from clients across a network and sending responses. When a client makes a request over the network, the server receives the request and returns an appropriate response.
The request and response cycle between a server and client is not always a straightforward exchange. There might be a need to authenticate the client, check user permissions, and format the response for proper delivery.
Differences Between A Server And Desktop Computer
When people talk about a server, they are generally speaking about a powerful centralized computer that people connect to over a network. However, what makes something a server is not the kind of computer it is but its role.
You can use any ordinary desktop computer as a server; for example, if you have multiple desktops in your office, you can set one of them up to be a file server. The computer can have some files in a shared folder, and the other computers on the network can connect to it to access those files.
It’s also essential to note that, while any computer can be a server in practice, not all computers should act as servers. In the same way, there are computers best-suited for gaming and video editing, computers that would make good servers have some essential characteristics. We’ll explain some of these characteristics.
A server processor needs to be fast and able to perform a lot of tasks simultaneously. Many high-end PCs have speed and the ability to multitask; however, they fall short in the area of flexibility. For example, while there can be only one processor on a desktop’s motherboard, a server’s motherboard can have multiple processors to boost the system performance.
Since servers usually have more workload, their CPUs often have more cores than desktop CPUs. For instance, the highest number of cores on a Core i9 is 18; on the other hand, Intel Xeon Platinum 8380 Processor has 40 cores and can work with up to 6 TB of RAM.
2. ECC RAM
Your RAM will run into the occasional error when you use your computer for an extended period. With desktop computers, the way to fix this is to restart your computer; restarting the computer would flush the RAM and give you a “fresh start”.
Since companies cannot restart servers like desktops, the solution is to clear errors using Error Correction Code (ECC) RAM.
ECC RAMs can quickly check and correct the most common types of data corruption, which often cause crashes and data loss. The RAM’s error correction improves its reliability; however, this comes at the cost of slightly reduced performance.
3. RAID Hard Disk Configuration
RAID stands for Random Array of Independent Disks; it is a means of configuring multiple drives to improve the performance of a single drive. RAID configurations help boost the speed of a drive or protect data in case of a disk failure. The primary reason servers use a RAID configuration is to protect clients’ data that are constantly stored and used stored and used since a data loss is very costly on a server.
RAID 5 is the most popular RAID configuration because it gives a server speed, protection, and capacity. To implement RAID 5 disk configuration on a server, at least three drives are required– two for storage and one dedicated to rebuilding a failed drive in the event of a failure. When a disk fails, you can swap it out for a new one; this new disk can have all the backed-up data rebuilt on it, all without shutting down the server.
4. Server OS
The limitations of using a desktop computer as a server are not limited to hardware demands; there are also software limitations. Developers of desktop operating systems have tailored them to meet the needs of regular users and, as a result, cannot handle a large network workload. Because server OS is purely functional, many don’t even have a Graphical User Interface (GUI).
Server operating systems can largely reconfigure and update both hardware and software without restarting; this prevents frequent downtimes. Because servers are prone to more attacks than PCs, things like system security and data and memory protection are taken more seriously by OS developers.
According to Statista, Microsoft Windows Server is the most popular server OS, with Linux coming a distant second; there is also a tiny base of macOS Server users.
5. Stable Power
Servers need to be running 24/7 because they are vital to the companies that use them. The cost of server downtime for a minute could be as high as thousands of dollars for huge companies hence the need for a steady power supply.
A server setup must consider power supply, providing primary and backup means of power.
All machines get hot with use, but because servers operate 24 hours a day, 365 days a year, server rooms and data centers require a significant amount of cooling output. Even though the machines have vents and fans like a desktop computer, relying solely on the built-in cooling system of the server is not advisable.
You can make a server room cooler by following steps such as; creating good airflow, having an air conditioner, or using rack-mounted cooling units that pull hot air out of the computers and put in cool air.
Types of Servers
There are different types of servers, and they are classified by their function. In most big companies, single machines are dedicated to a particular type of server; smaller companies are more likely to run various types of servers on a single machine.
Below are some of the most common server types:
1. File Server
People use file servers for storing files and folders; these files could be business data, files, or documents. The files stored on a file server or fleet of file servers will be accessible for people on the network to connect to it and share.
Commonly file servers use Server Message Block (SMB) or Network File System (NFS) protocols, depending on the system architecture.
2. Web Server
All the files that make up a website, such as images, text files, and database content, are hosted on a computer. A web server is a program on that computer responsible for putting all those materials together and sending them to the web browser as a meaningful webpage. Nowadays, every web host automatically provides and configures a web server for users.
The two most common web servers are Apache and Nginx; Apache provides users with more power and flexibility, while Nginx is a lightweight web server that you can quickly get up and running.
3. Email Server
An email server is an application or computer in a network that acts as a virtual post office. The server saves incoming mail for distribution to clients and sends out outgoing messages.
Email servers use client-server application models to send and receive messages using an email protocol such as Simple Mail Transfer Protocol (SMTP). An email server is not as common as before, as most companies now prefer cloud solutions such as Microsoft 365 services.
4. Database Server
A database server is a giant repository of information stored on a central computer that others can access on the network. Database servers are helpful for other applications or websites on the network to query and receive the data gotten from there.
For instance, most big companies have huge rows of data that staff members in various departments will require at different times; a database server is a great way to share these pieces of data with everyone.
5. Application Server
An application server is an application installed on a server to perform a particular service. For instance, it is the installation of an application server like SQL that allows a server to run as a database server.
In practice, we can have multiple services or applications installed on a server; however, this is not best practice for security reasons.
When there are multiple instances of the same application server, it is considered a cluster of servers. Doing this removes a single point of failure, so the others can keep running if one server goes down.