A server is a network-connected computer that is able to accept, process, and respond to requests which are sent by other devices on the network. Servers can exist in local area networks (LANs) as well as on the open Internet and get their names from the fact that they serve other computers which are often referred to as clients. The act of a server receiving a request, processing it, and sending back some sort of acknowledgement or response to the client is known as the request-response cycle. This request-response cycle permeates the web by powering most Internet hosting services and is how most of your online interactions are carried out.
Servers can be set up to accept and process a single type of request from clients. Such servers are known as dedicated and they are often optimized to handle their type of request in the most efficient possible manner. This is especially important when the requests involve intensive server processing or when the volume of requests is very high.
On the other hand, you will often come across servers that are configured to respond to multiple types of requests at the same time. These multi-purpose servers are great when the number of requests is not that high or when the server has plenty of computing resources to spare. For example, small businesses would often use a single server to share files, send and receive company emails, and host the company website. These are just a few examples of what a server can do. Later in this article, we will look at some other popular server tasks.
As you might imagine, a server can perform its function only if it is turned on and working properly. Therefore, the server hardware is designed for continuous use and a high fault tolerance. Ideally, a server’s downtime should not exceed a few minutes per month. To accomplish such high uptime, the server may feature an enhanced cooling system to keep the components from overheating as well as redundant power supplies, network adapters, CPUs, and hard drives, so when a hardware fault occurs, the server would still be operational. Servers are also often equipped with error-correcting code memory (ECC RAM) to prevent data corruption.
All of these component characteristics describe what a hardware server looks like. However, the term server can apply also to virtual machines. A virtual machine is a sophisticated program with its own operating system that can be set up to act as a server. Virtual servers are very popular since they provide you with the flexibility and freedom of a physical server but at a fraction of the cost. That is why we offer affordable and feature-rich Virtual Private Servers.
In addition to physical and virtual servers, the term server can also describe the software that the computer is running. So in theory, you can install server software like the WAMP stack (Windows, Apache, MySQL, PHP) on your home PC and have a fully functional web server environment. That said, it is not a good idea to use a consumer-grade PC as a server. We go over the reasons you should not do so in our comparison between a server and a PC.
The WAMP stack is a good example of server software as it showcases all things that are needed to have a fully functional web server. It all starts with an operating system which is Windows in this example. The operating system serves as the intermediate between the server hardware and the server applications that are running on top of it.
Next, the server application that is part of WAMP is Apache. This is the actual software that accepts requests from clients and processes them. The web server application then communicates with any other frameworks and programs that may power your website or project. In the case of WAMP, these additional programs are a database management system called MySQL and a programming language called PHP. Once the request has been processed, the web server sends a response back to the client.
At the bare minimum, a server must have an operating system and a server application running on top of it. The operating system is necessary to enable the server program to function correctly. For example, the operating system provides network access, an IP address, and storage access for reading and writing data.
While any operating system would be able to provide such basic functionality, OS developers release special editions of their operating systems specifically designed for server use. Examples include Windows Server, Ubuntu Server, macOS Server, and others. These special variants often apply patches without requiring reboots, have enhanced security protections, and include additional technologies like virtualization and plug-and-play support for more hardware components.
Another significant difference between servers and regular PCs is the fact that most servers are headless. In other words, these computers do not have a monitor, mouse, or keyboard attached. Instead of working on a server as you would with a regular desktop, most servers are accessed and maintained remotely over the web via technologies like SSH and browser-based out-of-band management systems.
To learn even more about what a server is and how it functions, continue reading or jump to the section that interests you:
- What Does a Server Do?
- What Is the Client-Server Model and How Does It Work?
- How Is a Server Different From a PC?
What Does a Server Do?
At its core, a server provides a service to other computers or devices. The service is provided through the Internet or a local network. The two most popular types of services that a server can render are the storage and retrieval of files or data and the processing of information on behalf of the client. A single server can service multiple clients at the same time and a single client is able to access multiple servers simultaneously.
A server works by listening for requests from a client. When a request is received, it is processed and some sort of response is sent back. This response can be the requested information, a simple message saying that the request was received and processed successfully, or even just an HTTP status code like 200 (OK).
The types of requests a server can recognize depend solely on the number of server applications that are installed and active on the machine. The more server software packages there are, the more capable the server becomes in terms of what it can do. But if you install too many software packages, you run the risk of overloading the server and causing it to freeze. As such, server administrators perform a balancing act between how capable a server is set up to be and how many requests it can handle at the same time.
As an example, you can configure a server to host your website, power your database, send and receive email messages, act as remote file storage, and perhaps work as a VPN. But such a setup would not be able to handle high numbers of requests due to the sheer number of services it provides. To make matters worse, should the server freeze or crash due to an overload, you will lose access to all of those services. A better approach would be to spread out these services among two or three servers. Not only will each server be more stable, but in the event of a system freeze, you will lose access only to the services provided by that particular server.
While having multi-purpose servers makes economic sense for small companies that do not receive a lot of requests, larger organizations often opt to have dedicated servers for each online service that they offer in order to accommodate higher amounts of traffic. Big enterprises go a step even further by using entire server clusters to power a specific service.
A server cluster is a group of servers that pool their computing resources together and jointly receive and process all client requests. Each server is still independently operated, but it coordinates its work with the rest of the servers in the cluster. The benefit of having a server cluster is that you can get computing performance that is not attainable by using a single server.
Here at AwardSpace, we believe that grouping servers in clusters is a very powerful technology. That is why we are using it throughout our hosting environment. Every one of our hosting services – from web hosting, to email, to database, to VPS – is powered by a server cluster. Doing so allows us to achieve optimal performance and guard against server overloads that could lead to unwanted downtime for your website. All of our premium shared hosting plans and semi-dedicated servers are run by server clusters. We have even set up our database servers, email servers, and free website hosting to take full advantage of this powerful technology.
Start Your Own Website For Free!
What Types of Servers Are There?
Servers can be categorized based on their hardware structure and purpose. When it comes to hardware, there are two main types of servers – hardware servers and virtual servers. Conversely, there are many more types of servers if we classify them by their purpose – web, mail, FTP, DNS, print, application, and others. In this section, we will explore each of these two classifications in greater detail.
From a hardware perspective, servers are similar to regular PCs. They still have all of the basic components – a motherboard, a CPU, RAM, storage disks or SSD, network adapters, etc. The most notable difference between a PC and a server is that the server is designed with redundancy in mind and is built for continuous operation. Also, most servers feature a rack-mountable design as opposed to the mini-tower design found on most regular desktop computers. We explore the differences between a server and a PC in greater detail later in this article.
In contrast to hardware servers, virtual servers can be viewed as sophisticated programs that run on a physical computer. A single server can run one or more virtual machines. Each virtual server has its own operating system and is allowed to use a portion of the host computer’s hardware resources like CPU cores, memory, disk storage, and network bandwidth.
All virtual servers are managed by a program called the hypervisor. It is the hypervisor’s task to assign how many resources each virtual server is allowed to access. You can think of the hypervisor as the control tower at an airport. But instead of guiding planes during takeoff and landing, the hypervisor sends instructions on which CPU cores and how much memory each virtual server should utilize.
Thanks to virtualization, a single powerful server can be split into multiple virtual servers that are highly versatile and reliable, while remaining very affordable. In fact, virtual servers form the foundation of cloud hosting, the cutting edge in the online world. If you wish to have full control over your hosting environment, you should consider buying a virtual private server from us. All of our virtual servers are powered by our clustered server platform and deliver outstanding resiliency thanks to the KVM virtualization technology.
Apart from their hardware characteristics, servers can also be classified based on their purpose. You can find many types of servers that perform different tasks. Below, we will list some of the more notable servers based on the task they are set up to perform:
- Without a doubt, one of the most important and impactful types of servers is the web server. Every website on the Internet is powered by a web server. It is the web server’s job to accept incoming HTTP requests, process them, and send back a response containing the requested webpage or other information. Popular web server applications include Apache, Nginx, and Microsoft IIS. You can interact with web servers using web browsers like Chrome, Firefox, Edge, Safari, and Opera.
- While DNS servers often recede into the background, they are an important part of how the Internet works. DNS servers link the domain name for each website with the IP address of the server that is powering it. For example, when you go to www.awardspace.com, your web browser will query a DNS server for the IP address of the AwardSpace web server. Once the IP is found, your browser will be able to request pages from the AwardSpace server. Notable DNS server applications are MaraDNS and PowerDNS.
- Another type of server that is hugely important in the online world is the database server. Database servers store large amounts of information and can quickly search and retrieve it. Most content management systems like WordPress, Joomla, and Drupal require a database to function properly. Popular database server applications include MySQL, PostgreSQL, Microsoft SQL Server, and others.
- When it comes to communication, mail servers play a central role. A mail server allows you to send and receive email messages under your own domain, such as email@example.com. Popular mail server applications include Postfix, Exim, and Zimbra. You can interact with the mail server through an email client like Microsoft Outlook, Mozilla Thunderbird, Apple Mail, or a web-based email application like Roundcube.
- Files play a crucial role in any server which is why you need a way to manage those files as needed. To do so, you can use an FTP server. FTP servers applications allow you to connect to the server’s file system using the file transfer protocol (FTP). Once connected, you can upload new files, edit existing ones, and remove documents that you no longer need. Some popular FTP server applications include Core FTP Server, FileZilla Server, and vsftpd. To interact with these FTP servers, you should use an FTP client like FileZilla, Cyberduck, or CoffeeCup.
- Virtual Private Networks (VPNs) are powered by VPN servers and are used to protect your privacy online, especially when you are using public WiFi access points like coffee shops and airports. In addition, if your office has set up a VPN, you can access office equipment like the network-connected printer or any shared drives even when you are home or on the go. Some notable VPN server packages are OpenVPN Server, SoftEtherVPN, and Hypersocket VPN.
- Webpages nowadays can have functionality that rivals the functionality of any desktop application. And that’s because some pages are actually web-based apps that are powered by an application server. With web apps, you can use a program immediately without installation and all updates can be applied easily on the server. What is more, since most processing happens on the server, you can have thin clients that focus on portability and ease of use. These are clients that are not powerful enough to run the software on their own.
- Similar to application servers, computing servers are machines that excel at crunching numbers. Computing servers also enable the use of thin clients by taking care of all the heavy processing and leaving the client to interact with the data, rather than process it.
- Large organizations often have tighter security measures that take the form of security policies and user roles. In other words, each employee gets a certain level of access to the various internal systems. These access levels are stored in identity servers which aid the user during the login process for each system and service.
- When you have multiple systems online, it might become difficult to keep track of the performance of each one. That’s where a monitoring server comes in. This is a special server that does not participate in any day-to-day tasks, but instead, it just monitors the web traffic between the various servers and clients. Should another server malfunction, the monitoring server will alert the system administrators that there is a problem on the network. Larger companies may also task monitoring servers to scan for invaders and to keep a record of all interactions that occur on the company’s network.
- Lastly, we will take a look at print servers. Print server software allows you to make your printer discoverable on the local network and allow other clients to use it without having to be plugged in directly. Most modern printers come with a print server build right into them, so they can act like network appliances right out of the box.
How Does a Server Power My Website?
While you may think that a single server is used to power your website, in reality, several servers must work in tandem to create a seamless and feature-rich hosting experience.
It all starts with the web server. This is the server that will be accepting requests from clients, processing them, and sending back a response. Next, an FTP server should be present, so you can upload your website files and make edits when necessary. Most dynamic websites nowadays utilize a database for information storage, so a database server will also be necessary. When you combine these three servers, plus server-side support for a scripting language like PHP, Perl, or Python, you can host a fully functional and dynamic website. But there’s more.
When you share your website with friends or clients, you will likely want to use a domain name rather than the web server’s IP address. Using a domain name also requires the use of a server, namely a DNS server. It is the DNS server’s job to translate your domain name into your web server’s IP address whenever a visitor tries to load one of your pages.
Lastly, your hosting experience will not be complete unless you also have email functionality. This functionality is introduced using a mail server. Thanks to the mail server, you will be able to have an email address that uses your domain, such as firstname.lastname@example.org. In addition, the mail server can be used to power your website’s contact form.
Many hosting companies try to cut costs by cramming as many server applications into a single physical machine as possible. Here at AwardSpace, we do not do that. Instead, we have created several distinct server clusters. Each server cluster is responsible for a single type of operation. For example, we have a web cluster, a database cluster, and an email cluster. Each cluster is comprised of multiple servers that are load-balanced.
What is more, each of our web hosting tiers has its own separate server cluster. In other words, we have an independent server cluster for each of our free, shared, semi-dedicated, and VPS hosting plans. This separation ensures that we can deliver best-in-class performance on every one of our hosting packages.
What Is the Client-Server Model and How Does It Work?
The client-server model describes how network-connected computers interact with one another. One computer is the server and it serves information to other computers which are commonly referred to as clients. In this model, you always have one server entity (even if the server entity is comprised of multiple interconnected machines like a server cluster), but you may have an unlimited number of clients.
The clients interact with the server through a request-response cycle. This cycle governs how information is transmitted between the client and the server. The client-server interaction begins with the client sending a request to the server. The server receives this request, acts upon it, and sends back some sort of information, acknowledgement, or a response.
When a server receives a request, it does not carry it out straight away. Instead, the server will check the credentials of the client who has sent that request and make sure that the request originates from a legitimate client. Moreover, the contents of the request are often checked for consistency and coherence. If there are any data corruptions or if the data is malformed in some other way, then the server will reject processing the request and send a response back to the client that its request was rejected.
The nature of requests can vary greatly. Some servers will receive requests that mostly ask for information such as the contents of a webpage or information from the database. Other servers may be asked to perform computationally intensive tasks that the client cannot handle. In fact, there is a subset of clients called thin clients that do a minimal amount of data processing on their own. Instead, they rely exclusively on a server to crunch the numbers and they just present the information to the user.
Sometimes, a server may lack the necessary information to fulfill a certain request. In such scenarios, the server itself may send a request to a neighboring server in order to obtain the missing data, effectively becoming a client itself. As such, a single computer can be both a server and a client.
How Is a Server Different From a PC?
Servers and home computers share a lot of similarities: they are both comprised of the same basic components such as a motherboard, CPU, RAM, storage, etc, and they both run similar operating systems. However, servers are often modified in an effort to increase their stability and performance. In the next few paragraphs, we will examine how a server differs from a regular home PC.
Servers for large websites are expected to handle a lot of requests without getting overwhelmed, so having a lot of processing power is a must. As such, these servers are equipped with a lot of high-performance RAM and a fast processor. In fact, it is common for a server to have several times the amount of RAM that is found in regular PCs. Also, many servers can use several CPUs at the same time for increased performance. And when it comes to storage capacity, it is normal for a web server to greatly exceed the storage options found on consumer PCs.
Get Your Own Private Server Now!
In addition to having more powerful components, servers often have multiple components of the same type. This is done for a performance boost, but also redundancy. The idea here is that if one component fails, the system would continue to operate, albeit at a slower rate. For example, servers often have multiple network interfaces. If one experiences a malfunction, the rest that are still operational will pick up the slack. This redundancy strategy is applied to as many components as possible, such as hard drives, CPUs, cooling fans, power supplies, and RAM. Speaking of memory, server RAM is often error-correcting (ECC) in order to avoid data corruption. Similarly, storage nowadays takes the form of solid-state drives (SSDs) that are arranged in a RAID configuration for maximum redundancy.
All of these backup components are used to ensure that the server never has to be powered down. By keeping the system running 24/7, you are maximizing your uptime which means that clients can access the server the moment they need to.
To further increase uptime, the server’s operating system is much more lenient when it comes to hardware component changes. The OS will often permit you to swap out a faulty component and replace it with a working one while the system is still running. Some new components will be recognized and will be utilized immediately without the need for a system reboot. Similarly, most operating system patches and updates will be applied on-the-fly without requiring a restart.
Another unique characteristic of a server OS is that it may not come with a graphical user interface (GUI). Instead, you may be expected to interact with the server through the command line. The lack of a GUI means that the server can be further streamlined for optimal performance by freeing up as much memory and processing power as possible. And when you consider that server administration usually happens remotely over a secure shell (SSH) connection, then it really doesn’t make sense to have a graphical user interface that just consumes server resources. Moreover, server computers are usually headless which means that they are not attached to a monitor, mouse, and keyboard.
Other notable features that are commonly found in server-grade operating systems include the detection of hardware faults like overheating and component failures, advanced networking setups, and the ability to create flexible and frequent backups of data. These features and many others can be found in operating systems like Windows Server, Ubuntu Server, CentOS, as well as other Linux variants like Red Hat Enterprise and Debian.
Servers can either be stored on-premises or in a data center. On-premise storage allows you immediate access to the server, however, you will not have a good Internet connection and not as many disaster mitigation measures in place without a serious investment in proper equipment and personnel. That is why many companies opt to place their servers in a colocation facility where the colocation hosting provider will ensure that the server is stored under the right conditions and always has a reliable power supply and Internet connectivity.
Data centers store their servers in racks which is why most servers are designed to be rack-mountable. This stands in contrast to the mini-tower, laptop, tablet, and all-in-one form factors that can be found on home PCs.
The size of a rack-mountable server is measured in U. U represents a shelf on a server rack. If a server has one whole shelf, then its size is 1U. Conversely, a server taking up two shelves would be 2U. Smaller servers may only take half a shelf in which case they are considered 1/2U.
In addition to regular servers that are relatively big and bulky, a new type of server is emerging called a blade server. These are small servers that utilize miniaturized computer parts and take only a fraction of the space of a regular server. A server blade is approximately the size of a hard drive or an SSD. As such, you can fit dozens of server blades in a single U of rack storage space. The best part is that each server blade is a standalone computer that can be used to perform a specific task.
Servers are the building blocks of the online world. Without servers running 24/7 across the world, you would not be able to access your favorite websites and online services. Each service is usually powered by a distinct type of server. For instance, websites use web servers, file sharing websites use file and FTP servers, email services use email servers, and so on. To facilitate continuous operation and service availability, most servers are built with a high degree of fault tolerance and data redundancy.
While hosting a website may seem like a straightforward task, in reality, there are several servers that need to seamlessly interact together in order to deliver a good hosting experience. You need to have a web server to power your website, a file and FTP server for file access and storage, a database server for data storage, and an email server for sending and receiving messages. In addition to those servers that your website actively uses, other servers are also necessary for behind-the-scenes work, such as DNS servers that translate your domain name into the IP address of your web server.