By strict definition, a web server is a common subset of an application server.
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.
The market is flooded with web servers and application servers—too many to list here. Instead, we thought it might be more valuable to list the most popular free, open source options available:
Nginx (link resides outside of ibm.com) 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. (link resides outside of ibm.com). According to the internet research and cybercrime prevention company Netcraft (link resides outside of ibm.com), 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 (link resides outside of ibm.com) 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 (link resides outside of ibm.com) is an open source Java EE application server launched by Sun Microsystems in 2006, and it is hosted today by the Eclipse Foundation (link resides outside of ibm.com). Like most Java application servers, Glassfish supports Java Servlets, Enterprise JavaBeans (EJB), and more, but it can also function as a web server, serving up web content in response to HTTP requests.
IBM® WebSphere® Application Server is the most advanced application server for building and running Java apps and enterprise applications.
A comprehensive and flexible Java EE and MicroProfile app server for the next era of apps and cloud services
Discover how to drive cloud-native development, application modernization, and support for existing applications with WebSphere® Hybrid Edition.
This guide outlines how to accelerate your app modernization, improve developer productivity, and improve operational efficiency and standardization.
Learn how load balancing optimizes website and application performance.
Learn why Java remains such a popular development platform and how it accelerates projects and supports a wide range of emerging technologies.