Have you ever wondered while browsing your favourite website, what is a web server and how servers work? At the mention of web servers, a lot comes to mind as far as the internet is concerned. Web servers play a key role in internet-based communication without which we wouldn’t have any online experience. You wouldn’t even be reading this article. This is because this website is currently sitting on a web server somewhere.
So, every time you visit any site such as Facebook, Netflix, YouTube or even shop on an online store, always keep in mind that the sites are sitting on web servers hosted somewhere.
So what is a web server?
In simple terms, a web server is a piece of software that is hosted on a computer to serve clients’ requests which are sent via a web browser. Upon receiving client requests via a browser, the web server, in turn, delivers the web pages to the user that contain a wide spectrum of content including images, sound, and videos.
Through the web servers, users can access the content they desire via a web browser: from streaming movies on Netflix, and networking on social sites to buying items in online stores. Thanks to web servers, you can get almost any content to want online.
Let’s go a step further and look in greater detail at how a web server works.
An in-depth look at how a web server functions
Web servers underpin access to all manner of online content, constantly receiving requests and serving content to millions of users at any given time. So here’s how a web server works:
Every time you type a domain name in the URL bar and hit Enter, an HTTP request is delivered to a web server associated with the domain name. Your browser acts as an HTTP client which allows you to send the request. Thereafter, the domain name is then translated to an IP address of the webserver by the DNS (Domain Name System). Domain names are preferred to typing the web server’s IP address. And for obvious reasons. It’s far much easier to recall a domain name than try to rack up your brain trying to remember what an IP address for Facebook or Amazon is. Upon receiving the request, the web server relays the HTTP response to your browser and renders the content that you had earlier requested. In a nutshell, a web server processes HTTP requests and responds by providing HTML webpages. Examples of popular web servers used in hosting include Apache HTTP server and Microsoft’s IIS.
However, Apache takes the lion’s share and is the most widely used in most hosting companies and websites. Web servers can host either a static or a dynamic website. Let’s take a look at each of these in greater detail.
Static vs Dynamic websites
As the name suggests, a static website is one whose content is usually static or non-changing.
Usually, a static website comes with a fixed number of pages with a defined layout. Content is mostly written in HTML/ CSS code and a bit of JavaScript/JQuery. The content served by the webserver hardly changes, and the same content is displayed for every user. The content is mostly informational and If any changes are required, then the website administrator has to be well-versed in the coding languages to make any modifications. Every page of the static website is saved separately on the server. Because of their simplistic nature, static websites are fairly easy to develop and won’t require much time and effort in maintenance. Because of the bland and uninspiring nature of static websites, static websites have been long obsoleted and have been phased out by dynamic websites.
Let’s now shift our focus to dynamic websites. A dynamic website is a website that is powered by server-side scripting languages to generate dynamic content. Such languages include PHP, Javascript, and ASP. In this case, webpages are not coded or saved separately. Instead what governs the look and feel and structure of the website is the design or template that is saved separately. The corresponding content is saved separately in databases.
Dynamic websites provide user interaction and the content displayed is dependent upon how users interact with the website.
In a nutshell, dynamic websites are functional and the content served varies from one user to another depending on the user interaction.
The downside to dynamic websites is their complexity. They are much more difficult to develop and require a greater level of expertise to host and maintain them.
Other Server Software that works alongside Web Servers
If you are running a static website, a web server is all that you would require. The same cannot be said of a dynamic website. A database server comes into the picture and is necessary for the storage and retrieval of data upon request. It works in the backend and works alongside the web server, which works on the front end, to deliver content to users. Examples of database servers include MySQL, PostgreSQL, Microsoft SQL Server, and MariaDB.
The other type of server is the application server. An application server hosts applications as well as associated services that are required by end-users. This server essentially sits between the web server and the database server, handling the customer & business applications and acting as the go-between for the web and database server.
Application servers include Apache Tomcat and Websphere.
How are servers equipped for high performance?
The servers we have talked about are essentially pieces of software that need to be installed on bare-metal hardware to carry out their tasks. Server hardware mimics ordinary PCs and fundamentally works just the same as ordinary PCs. However, since servers are designed to run 24/7 serving thousands of requests per second, they ship with enhanced hardware components and rely on certain configurations to ensure 100% uptime and boosted performance.
Due to their memory-intensive tasks, most servers will usually ship with RAM ranging anywhere from 8 GB to 2 TB with additional expansion slots. Also, they will also come with more storage capacity with hot-swappable drives to store the ever-increasing data that is stored on them. A typical server will usually come with a hard disk capacity of about 4GB with extra slots to cater for expansion or growth in the future. For super-fast processing power, servers ship with Xeon processors with impressive 24 cores for executing tasks at remarkable speeds. It’s also worth mentioning the existence of a redundant power supply option in the event of a power failure and the presence of additional cooling fans to keep the temperature at optimum levels and avoid overheating of the server components.
It would be an oversight on our part if we failed to mention the need for RAID configuration.
RAID, an acronym for Redundant Array of Independent Disks, is a technology that provides fault tolerance. In a RAID setup, multiple hard drives are configured together in such a manner that in the event of disk failure in one drive, no data is lost since data is already copied onto other drives. This aspect is particularly crucial for business websites that store enormous user data and need to always ensure data safety and integrity. A failure in one hard drive in the RAID will not affect the server’s overall performance. Currently, there are up to 6 RAID configurations depending on the amount of storage and the degree of redundancy that you require. The most commonly used RAID configuration is RAID 10. It combines the speed preferred by RAID 0 and the fault tolerance extended by RAID 1. In RAID 10, there are at least 4 drives. Two of these hard drives mirror the other two, implying that you get double the capacity and performance of a single drive. The only shortcoming with RAID 10 is that you get to use half the storage capacity.
Another aspect that boosts the efficiency of servers is load balancing.
Load balancing is the process where traffic is routed or distributed efficiently across multiple web servers using certain criteria. A load balancer is a computer system that sits in front of web servers and distributes these requests evenly among different web servers. Load balancing aims to avoid flooding a web server with traffic which may lead to accessibility issues such as poor response times or even total downtime. Load balancing comes in handy in high-traffic websites where multiple web servers sit behind a load balancer and traffic is efficiently distributed across all of them. This leads to the high performance and efficiency of the web servers by alleviating the load that one web server alone would have performed.
What constitutes great hosting?
This is a broad question to answer, but let’s focus on the quintessential aspects that make for an awesome hosting experience.
Top on the list is price. You need to determine the affordability of the various hosting plans and assess the value for the money you will get. Second, on the list is customer support. A good hosting company prides itself in offering exceptional 24/7 customer support to its clients. So before opting for a specific hosting company, it’s prudent to be certain that you will get assistance at any time of the day in the event you run into a hitch.
It also pays to keep an eye on the bandwidth offered by your hosting provider. More bandwidth guarantees faster access times and speed to your website. You also need to know whether the hosting plan offers CMS frameworks such as WordPress, and Magento just to mention a few. These frameworks enable you to design your website on the fly, saving you a copious amount of time and finances that would have been spent hiring a developer. Also, check if the provider is offering add-ons such as SSL certificates, subdomains, website builders and any other nifty additional features that will make your hosting experience pleasant.
As time goes by, cyber threats continue to grow in number and wreak havoc on websites. You, therefore, need to opt for a security-centric hosting company that will guarantee the security and integrity of your data from malware and breaches.
Also, be on the lookout for the guaranteed uptime that the hosting provider is offering. This will be crucial in ensuring that your site will be up and running for most of the time with as minimal downtime as possible. And we all know the implications of downtime on a website: business and numerous customers lost. An ideal hosting company should guarantee 99.9% uptime.
Lastly, it recommended performing a background check on the hosting providers. Spend time poring over the reviews and ratings of the hosting provider and see what people are saying.
Is the Hosting provider reliable? Do they offer excellent uptime? Is their customer support friendly and helpful? Overall, are you getting value for money?