Learn more about web servers, including how web servers work, what they’re used for, and key differences between web servers and application servers.
What is a web server?
Web server is a server that installs programs to serve web applications. Webserver has the ability to receive requests from web browsers and send responses to clients via HTTP protocol or other protocols. There are many different web servers such as: Apache, Nginx , IIS, … The most popular web server today:
How does a web server work?
Whenever you view a website on the internet, you are requesting that page from a web server. When you enter a URL on your browser (e.g. https://hlsplayer.space/ ) it will take the following steps to send you a response.
1. The browser resolves the domain name to an IP address
Your web browser first needs to determine which IP address the domain name hlsplayer.space points to. The browser will request information from one or more DNS servers (via the internet). The DNS server will tell the browser which IP address the domain name should point to which is also where the website is located.
Now that the web browser knows the IP address of the website, it can request the full URL from the webserver.
2. The webserver sends back the requested page to the client
The web server responds by sending back the information the client requested… If the page does not exist or another error occurs, it sends back the appropriate error message.
3. The browser displays the website
Your web browser receives back the html css files (many other files)… and renders the page as requested.
Introducing some popular Web Servers
Apache HTTP server
Apache is the most widely used web server in the world. Apache is developed and maintained by an open source community under the auspices of the Apache Software Foundation. Apache is released under the Apache License and is free to use.
As of August 2018, Apache is estimated to serve 54.2% of active websites and 53.3% of top servers. Apache runs on operating systems such as windows, linux, unix, MacOS…
Nginx
Nginx is a lightweight web server (Read more about what Nginx is ), which does not take up much system resources. Nginx is also an open source proxy reset. Nginx is quite stable, simple to configure and high performance.
Nginx was developed by Igor Sesoev in 2002 mainly to serve the website rambler.ru (Russia’s second most visited website). According to Netcaft statistics, of the one million largest websites in the world, 6.52% use Nginx.
Nginx is free and open source software, widely released under the BSD license. Nginx is developed in the language and can run on operating systems such as Linux, FreeBSD, Windows, MacOS…
Nginx has features such as user authentication, virtual hosting, support for CGI, FCGI, SCGI, WGCI, SSI, ISAPI, HTTPS, Ipv6, …
Internet Information Services (IIS)
IIS was developed by Microsoft, this product is integrated with the Windows Server operating system. IIS includes many services such as: Web Server service, FTP Server service. As of May 2015, the number of websites using IIS servers is nearly 248 million.
All web server features are managed independently so we can easily add, remove or replace web server features.
Thanks to ASP.NET integration IIS can use the full power of ASP.NET. ASP.NET modules enable rapid server development thanks to the familiar interface and application services of ASP.NET.
Apache Tomcat
Apache Tomcat is a Java Servlet developed by the Apache Software Foundation. Tomcat executes Java Servlet and JavaServer Pages (JSP) applications. Tomcat provides an HTTP server for the pure Java language.
Apache Tomcat is very stable and has all the features of a commercial web application but comes under the Apache open source license. Tomcat also provides some additional functionality such as tomcat manager application, speciallized realm implementation and tomcat valves.
The versions of apache tomcat coincide with the version and specification of java servlet or java servlet API. Tomcat 5.5X supports Servlet API 2.3, tomcat 6.0X supports servlet API 2.4 and tomcat 7.0 supports servlet API 3.0. In addition to Servlet API versions, tomcat versions support the corresponding JSP API versions.
Apache Tomcat supports operating systems such as windows, linux, MacOS, BSD,…
Lighttpd
Lighttpd is open source, secure and flexible software, especially free and distributed under the BSD license. Lighttpd is written by Jan Kneschke. Lighttpd takes up little resources, low memory, small CPU. Lighttpd is developed in C language. It runs on Linux, Windows, Mac OS,…