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.