I looked at the Web Server definition there, and saw many different capabilities among the products. Some serve only static files such as HTML and images. Our Internet Engineering guys use that as a definition of web server. Others run program code like ASP pages or JSP/Servlet engines. Our IE guys call those application servers because they are running code from us AD guys, even though they usually produce HTML for browser consumption. In our physical world, the HTTP server and the servlet engine are on separate machines, and they call them web and app respectively. My team usually calls the servlet container "the web server" because it's the thing that produces HTML. We call the EJB server or Corba ORB the application server, because it is the channel-independent application. We kinda ignore the HTTP server when we talk this way. To really confuse things, our servlet and EJB servers run in one JVM. So the names "web" and "application" server are a bit ambiguous. If you're conversing with someone new do a quick check to make sure you mean the same thing.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi