In Simple words we can say a webserver is responsible to serve static data where as a applicatin server is resonsible to serve dynamic data.
The Web server
A Web server handles the HTTP protocol. When the Web server receives an HTTP request it responds with an HTTP response such as sending back an HTML page. To process a request a Web server may respond with a static HTML page or image send a redirect or delegate the dynamic response generation to some other program such as CGI scripts JSPs (JavaServer Pages) servlets ASPs (Active Server Pages) server-side JavaScripts or some other server-side technology. Whatever their purpose such server-side programs generate a response most often in HTML for viewing in a Web browser.
Understand that a Web server's delegation model is fairly simple. When a request comes into the Web server the Web server simply passes the request to the program best able to handle it. The Web server doesn't provide any functionality beyond simply providing an environment in which the server-side program can execute and pass back the generated responses. The server-side program usually provides for itself such functions as transaction processing database connectivity and messaging.
While a Web server may not itself support transactions or database connection pooling it may employ various strategies for fault tolerance and scalability such as load balancing caching and clustering—features oftentimes erroneously assigned as features reserved only for application servers.
The application server
As for the application server according to our definition an application server exposes business logic to client applications through various protocols possibly including HTTP. While a Web server mainly deals with sending HTML for display in a Web browser an application server provides access to business logic for use by client application programs. The application program can use this logic just as it would call a method on an object (or a function in the procedural world).
Such application server clients can include GUIs (graphical user interface) running on a PC a Web server or even other application servers. The information traveling back and forth between an application server and its client is not restricted to simple display markup. Instead the information is program logic. Since the logic takes the form of data and method calls and not static HTML the client can employ the exposed business logic however it wants.
In most cases the server exposes this business logic through a component API such as the EJB (Enterprise JavaBean) component model found on J2EE (Java 2 Platform Enterprise Edition) application servers. Moreover the application server manages its own resources. Such gate-keeping duties include security transaction processing resource pooling and messaging. Like a Web server an application server may also employ various scalability and fault-tolerance techniques.