If you’re reading this article right now, you’ve already utilized the client-server model without even realizing it. You (as the client) have requested a resource (i.e this webpage) which was served to you by a webserver.
This is the prevailing architecture for modern communications whereby digital data is offered by servers to clients.
The alternate model, known as peer-to-peer, or “P2P”, relies on computers connecting to one another to share data.
Unlike the P2P model, client-server architecture relies on a main server machine or set of machines connected to a network, typically in a data center.
Clients, or normal computers connected to the web or to a local network, send packets to request data from the server.
When the server receives these requests, they can do one of three things: accept the packet, reject or “drop” the packet, or silently kill the connection.
Relying on the usage of “ports” to control the flow of data, clients and servers must send requests to and from one another on the correct ports.
Most firewalls are set up to receive different kinds of requests. For example, most servers using Hypertext Transfer Protocol, or “HTTP”, will only accept requests for their data over port 80 or 443.
If you send a packet from a client to a correctly configured server to another port, the server will typically silently drop the packets sent.
Now that we’ve had a brief discussion on how the client-server model works broadly, let’s dive into some of the most popular types of servers found in computer networks and in Information Technology field in general.
We’ll look into how they work, why they do what they do, and how they’re integral in a computer network.
Then we’ll jump into the difference between a real, physical server and a virtual server.
Let’s start with the various types of servers in network environments.
1. Web Server
A web server powers the site you’re looking at right now. This genre of server focuses on serving web content to clients.
Web servers simply take “GET” and “POST” requests from clients (among other verbs).
A “GET” request is when a client simply wants to retrieve information and doesn’t have any information to submit to the server.
A “POST” request on the other hand is when a client does have information to share with the server and expects a response back. For example, filling up a form on a web server and clicking the submit button is a “POST” request from the client to the server.
Web servers are typically “headless” in nature. This is to preserve the memory on the server and ensure that there’s enough to power the operating system and applications on the server.
“Headless” means that it doesn’t run like a traditional home computer, but rather just serves content. The administrators of these servers can only connect to them through command line terminals.
Remember that these types of servers can run any type of application just like your home computer can.
They can also run on any operating system, as long as they obey the general “rules” of the web.
A web browser then renders the content accordingly to show the page as you’re reading it now.
Some popular webservers include Microsoft IIS, Apache, Nginx etc.
Some Ports used for Webservers: Port 80 for HTTP (not encrypted) and Port 443 for HTTPs (encrypted).
2. Database Server
A database server typically operates in tandem with another type of server. This kind of server simply exists to store data in groups.
There are countless methods of keeping data that operate on different theories. One of the more common types is known as “SQL” or “Structured Query Language”.
Database programmers can create databases on these servers using scripting in the language of the database.
Web applications usually have their server-side components connect to a Database server to grab data as users request it.
A good practice is to have webservers and database servers on different machines. The reason that database servers should exist on their own is for security.
If a hacker gains access to the main webserver but not the database server, they will be able easily to retrieve or modify the data stored in the database server.
Some popular Database servers include MySQL, MariaDB, Microsoft SQL, Oracle Database etc.
Some Ports used for Database Servers: Port 3306 (MySQL, MariaDB), Port 1433 (MS-SQL), Port 1521 (Oracle DB).
3. eMail Server
An email server typically runs on “SMTP” or “Simple Mail Transfer Protocol”. There are other possible protocols that newer mail servers operate on, but SMTP remains the dominant protocol.
An email server powers mail services. These servers in themselves simply take in emails from one client to another and forward the data to the other server.
Data is simplified when sent through SMTP, so some information, like web formatting, is usually lost in email transactions.
The modern approach to email servers typically pairs them with web servers. This allows for users to have a “web client” that graphically shows the data on a web page. Some newer web applications can even mimic a home computer email client without installing anything.
Some Ports used for eMail Servers: Port 25 (SMTP), Port 587 (Secure SMTP), Port 110 (POP3)
4. Web Proxy Server
A web proxy server can run on one of many protocols, but they all do one thing in common.
They take in user requests, filter them, and then act on the user’s behalf. The most popular type of web proxy server is designed to get around school and organizational web filters.
Because web traffic is all through one IP address and website that isn’t yet blocked, users can gain access to sites that are forbidden through these filters.
The less popular type is an organizational proxy server. This has the same effect, but it’s typically authorized by an organization.
It takes users’ web traffic, usually logs it for evaluation later, and sends it to the Internet.
This puts users’ traffic all together so that one computer cannot be differentiated publicly from another.
This is done intentionally by an organization to prevent users from being targeted and usually to be able to inspect, cache and analyze packets sent and received.
Some Ports used for Web Proxy Servers: Port 8080, 8888 etc
5. DNS Server
A DNS server, or “Domain Name Service” server, is used to translate domain names to their corresponding IP addresses.
This server is what your browser references when you type in a domain name and press Enter. The idea is that users don’t have to memorize IP addresses and organizations can have a fitting name.
Typically, Internet Service Providers (ISPs) provide DNS servers to their users. However, there are many organizations that provide this lookup service for free, as well (such as the popular Google DNS server with IP 220.127.116.11).
Some users who are more concerned about their privacy on the web often use these alternate DNS servers.
DNS servers are also tapped when users create a new domain name. DNS servers operate on a hierarchical basis, so there are some more “authoritative” servers than others.
The domain name is registered with one higher-up DNS server that other, lower-level DNS servers reference. Usually through a process taking anywhere from 24 to 48 hours, this registration propagates across the world.
Ports used for DNS Servers: Port 53 (both TCP and UDP).
6. FTP Server
FTP servers, or “File Transfer Protocol” servers, have a single purpose: to host a file exchange among users.
These servers do not provide any type of encryption by default, so there are a number of secured versions of the protocol that are often used in its place (such as sFTP which is FTP over secure SSH protocol).
This type of server allows users to upload files to it or download files after authenticating through an FTP client. Users can also browse the server’s files and download individual files as they wish.
Some Ports used for FTP Servers: Ports 20,21 for FTP or Port 22 for sFTP.
7. File Server
A File Server is different from an FTP server. This type of server is more modern and is typically capable of “mapping” networked files onto drives. This means that users can use their home computer’s file browser to look into folders.
The main advantage of this form of server is that users can upload and download shared files. Permissions to files are controlled by the administrator.
Usually File Servers exist in corporate networks in a Windows Active Directory environment or in Linux environments.
8. DHCP Server
A DHCP Server uses the Dynamic Host Communication Protocol (DHCP) to configure the network settings of client computers.
Instead of having to manually configure static IP address and other network settings to client computers in a large network, a DHCP server in the network configures dynamically these network settings to LAN computers.
Port used for DHCP Servers: Port UDP 67.
Different Server Platforms
There are mainly two types of servers found in networks: Physical Servers and Virtual Servers. Here’s how they’re alike and how they differ.
1. Physical Server
A Physical Server is what truly serves data in the end. Operating on metal and electricity, modern physical servers are often capable of serving far more than one user could ever want.
These are typically housed in data centers by hosting companies to serve a variety of clients. The only exception would be larger organizations who rely on these; in these cases, the organizations usually own the network of physical servers.
In the past, each server in a network (e.g Webserver, Database Server etc) was hosted on its own dedicated physical server. This concept is now being replaced with Virtualization technologies whereby each server can be a virtual machine inside a bigger physical machine.
2. Virtual Server
A virtual server is a partitioned part of a physical server. Most “servers” online are virtual servers. They often are given a dedicated amount of physical server resources to utilize (such as RAM, CPU, Storage space).
Users can rent virtual servers for a fraction of the cost of a physical server. This is because hosting companies typically own or rent the physical server for a wholesale price, then profit off of selling parts of the physical machine at a time to users with smaller audiences.