This is one of the popular interview questions that you can definitely expect in future. What I will be explaining here will be something out-of-the-box, trying to achieve the level of clarity and perspective hard to find across the web. As in our technical day-to-day life, we have always kept hearing the terms ‘web server’ and ‘application server’, but probably most of us just ignore it and are still in a dilemma as to what exactly makes them different from each other. Quickly getting to the point, what is a web server and an application server? We have known that Apache Tomcat HTTP Server is a Web Server and WAS (WebSphere) is an Application Server. But what actually differentiates them. Below they are:
Web Servers just serve HTTP content, but Application Servers are not limited to just HTTP. They actually serve business logic to application programs through any number of protocols.
Web Servers mostly serve static content, though most of them have plugins to support scripting languages like PHP, ASP, JSP, Perl, etc. through which they are able to generate dynamic HTTP content as well. Application Servers on the other hand, are fully capable of doing what a Web Server can. That is, Application Server has a Web Server as it’s core. In addition to that, Application Servers provide application level services such as Connection Pooling, Transaction Support, Messaging Services, Object Pooling and so on.
Most of the production environments today have Web Server acting as a reverse proxy to the Application Server, which means, that when a page request arrives, Web Server identifies dynamic content request and accordingly forwards it to the Application Server, while the Web Server itself renders the static contents such as images/static HTML. One such example of such scenario is Apache Tomcat HTTP Server (Web Server) and Oracle WebLogic Server (Application Server).
Also in some cases a Web Server gets capable of serving Application Services in tightly integrated environments such as IIS (Web Server) and .NET Runtime. When integrated with the .NET runtime environment, IIS gets capable of providing Application Services.
I hope you might be clear with the basic differences. For any queries, please mail/comment.