Web Server vs. Application Server: What Is The Difference?: Nginx
Web Server vs. Application Server: What Is The Difference?: Nginx
A web server delivers static web content—e.g., HTML pages, files, images, video—
primarily in response to hypertext transfer protocol (HTTP) requests from a web
browser.
An application server typically can deliver web content too, but its primary job is to
enable interaction between end-user clients and server-side application code—the code
representing what is often called business logic—to generate and deliver dynamic
content, such as transaction results, decision support, or real-time analytics. The client
for an application server can be the application’s own end-user UI, a web browser, or a
mobile app, and the client-server interaction can occur via any number of
communication protocols.
In practice, however, the line between web servers and application servers has become
fuzzier, particularly as the web browser has emerged as the application client of choice
and as user expectations of web applications and web application performance have
grown.
Most web servers support plug-ins for scripting languages (e.g., ASP, JSP, PHP, Perl)
that enable the web server to generate dynamic content based on server-side logic. And
an increasing number of application servers not only incorporate web server
capabilities, but use HTTP as their primary protocol and support other protocols (e.g.,
CGI and CGI variants) for interfacing with web servers. They also allow web
applications to leverage services like reverse proxy, clustering, redundancy, and load
balancing—services that improve performance and reliability and allow developers to
focus less on infrastructure and more on coding.
To make matters more confusing, many web servers and some application servers are
referred to, or refer to themselves, as web application servers.
The bottom line is that today’s most popular web servers and application servers are
hybrids of both. Most of the increasingly rich applications you use today feature a
combination of static web content and dynamic application content, delivered via a
combination of web server and application server technologies.
Nginx
Nginx is an open source web server that includes reverse proxy, load balancing, mail
proxy, and HTTP cache capabilities. (Commercial, supported versions of Nginx are also
available, at Nginx, Inc.) According to the internet research and cybercrime prevention
company Netcraft, Nginx served or proxied nearly 38% of all the world’s websites and
over 25% of the million busiest sites as of December, 2019. World-known enterprise
Nginx users include Dropbox, Netflix, and Zynga.
First released in 1995, Apache HTTP Server (also just known as ‘Apache’) is another
very popular free, open source web server that, until very recently, powered more
websites than any other web server—71% at its peak—before being overtaken by Nginx
in April, 2019. As of December 2019, Apache served over 24% of all sites worldwide
and 31% of the million busiest sites.
Apache Tomcat
Apache Tomcat is an open source application server that executes Java Servlets,
renders and delivers web pages that include JavaServer Page code, and serves Java
Enterprise Edition (Java EE) applications. Released in 1998, Tomcat is the most widely
used open source Java application server.
Glassfish