Every Application Server (AS) is based on a particular Application Development Platform like .NET or
J2EE. Though .NET is also a specification like J2EE that third party vendors can use to develop .NET compliant application server, there are not many .NET based application servers.
Depending on the platform it is based on every AS has to implement certain policies (security, caching, transaction control, authentication, data persistence etc.) For example, all J2EE servers have 'Web Container' (to host
JSP, Servlets, Beans etc.) and 'EJB Container' (to host EJBs).
Web Servers have got HttpListeners (objects that react to every Http request they receive) which interpret the name and location of the resource requested and then send the resource to the requestor.
Almost all the AS today have an inbuilt WS and hence not only send the requested resource to the requestor, but also let you make a decision about sending it. Most of the AS are tuned to interact with backend databases and help the server side components for this purpose.
Apache Foundation's
Tomcat is both a stand-alone servlet container (web container) used by other AS (like
JBoss) and a web server. Weblogic, Websphere, Sun ONE Server are noted J2EE Application Servers.
Microsoft IIS and Apache Foundation's Apache Web Server are well known web servers.
Hope it helps.
Abhishek.