Computer Networking: What is a Web Server? Part 5
Computer Networking: What is a Web Server? Part 5

Photo by panumas nikhomkhai from Pexels

You may have heard of the term “Web Servers’’ somewhere, or you may have used them in a sentence, but deep down you have no idea what it means (you are not alone) you may have said it to sound techy and maybe to impress your friends, now here you are! Haha that’s all just on a lighter note, let’s dive right in.

“What is a Web server? Well a web server is basically a computer that runs websites.” “A web server can also be defined as software that delivers content (web files) to clients that request for it via HTTP.”

(Remember what an HTTP is, It is simply a protocol or set of rules that govern the communication between computers, how they share files etc.) A web server is not complete without the hardware. The web server software and website components have to be stored somewhere and that’s where the hardware comes in.

A web server can also be called an “HTTP Server.” Why is it called an HTTP server you may ask? Well, it’s pretty straightforward.

“A web server serves files upon request. This request is made by the client (web browser) and by way of a protocol called HTTP, there has to be a response, this response is given by the server also, by way of HTTP. So hence the name HTTP server, web files are served via HTTP.”

HTTP requests and responses will be discussed in detail shortly. What exactly is HTTP? Well HTTP is short for Hyper-text Transfer Protocol which is a set of rules that govern the transfer of web files over the web.

Now we’ve gotten that out of the way let’s talk about the HTTP requests and HTTP responses:

An HTTP request is simply a request made by an HTTP client , to access web files hosted on the HTTP server . For a request to be made to an HTTP server , the requested file’s URL is to be provided by the client.

is simply a request made by an , to access web files hosted on the . For a request to be made to an , the requested file’s URL is to be provided by the client. Well, you might have guessed it! An HTTP response is simply a response given by an HTTP server, upon request by the HTTP client. The response could be to inform the client that the files have been delivered, the files requested are not available, there is a problem faced by the server or bad request syntax by the client.

A web server is configured to suit the purpose required. For instance, if a static website is to be hosted on a web server as desired, the webserver has to be configured to work with the static website, meaning the server responds to requests by sending the hosted files as-is to the client. For the case of a dynamic website, the website is hosted on a web server, which in turn works hand in hand with an application server and a database. A dynamic website, it is constantly updated by the application server before it sends its content to the client. You may be wondering what an application server is:

“An application server is basically a server that hosts applications.”

Examples of these dynamic websites include Facebook, Netflix, Gmail etc. these websites serve content that is dynamic, content that needs to be updated before sending its content to the client. Examples of web servers include:

Apache

NGINX

IIS

Lighttpd

The ones listed above are widely used. There are two on the list above that seem to transcend the rest in terms of usage. it is Apache and NGINX.

The first version of APACHE was released in 1995 then followed by NGINX in 2004. In the words of Igor Syseov “NGINX was written specifically to address the performance limitations of APACHE web servers.” APACHE works with a thread-based structure thereby limiting performance. NGINX has been able to scale through this problem. The performance limitations are as a result of the C10K problem. The C10K problem is basically APACHE being unable to handle large number of clients at a time.

Now you know what a web server is, what it does, why it is needed and it’s examples! In the next article, we will be getting our hands dirty! come with me as we perform a hands-on lab, where we will be installing NGINX on our local machine. The lab will be based on Linux Ubuntu.
['Joseph Eshiett']
['Servers', 'Website', 'Web', 'Web Server', 'Www']