A Web server can be either a computer program or a computer running a program that is responsible for accepting HTTP requests from clients, serving back HTTP responses along with optional data contents, which usually are web pages such as HTML documents and linked objects on it. An application server is the kind of software engine that will deliver various applications to another device. It is the kind of computer found in an office or university network that allows everyone in the network to run software off of the same machine.
A web server and an application server may differ on the following points:
|Application Server||Web Server|
|Introduction (from Wikipedia)||An application server is a software framework that provides both facilities to create web applications and a server environment to run them.||Web server can refer to either the hardware (the computer) or the software (the computer application) that helps to deliver content that can be accessed through the Internet.|
|Definition||An application server, also called an app server, is a software framework that provides an environment in which applications can run, no matter what the applications are or what they do.||Web server can refer to either the hardware (the computer) or the software (the computer application) that helps to deliver content that can be accessed through the Internet.|
|What is it?||A server that exposes business logic to client applications through various protocols including HTTP.||A server that handles HTTP protocol.|
|Job||Application server is used to serve web based applications and enterprise based applications(i.e servlets, jsps and ejbs...). Application servers may contain a web server internally.||Web server is used to serve web based applications|
|Functions||To deliver various applications to another device, it allows everyone in the network to run software off of the same machine.||Keeping HTML, PHP, ASP, etc files available for the web browsers to view when a user accesses the site on the web, handles HTTP requests from clients.|
|Examples||Sun Java Application server, weblogic server, Apache Geronimo, IBM WebSphere Application Server, Glass Fish Server||Apache, Microsoft IIS, Tomcat, Jetty, Zeus Web Server, Oracle Web Server|
|Supports||distributed transaction and EJB's||Servlets and JSP|
|Clients can include||GUI’s, Web Servers||Web browsers, search engine robots|
The main function of a web server is keeping files active for web site browsing, twenty-four hours a day, seven days a week. Any time lost is known as down time which means that at that point, the website and its pages will not be viewable. Any good web hosting company tries to keep their downtime to less than a fraction of a second to be successful. An Application server facilitates this process and tries to make for easy data access of an application.
The Web Server does not support the concept of multi-threading. In Application Server we have features like connection pooling, isolation pooling, multi-threading, and majorly the Transaction feature which is not there in Web Server.
Web servers (programs) are supposed to serve requests quickly from more than one TCP/IP connection at a time.Consider that Internet Explorer or Firefox Web Browser is a local program on the user's hard drive, whereas the web pages themselves are not. The web pages are actually stored on the hard drives of other computers, and these are known as web servers. Application server products typically bundle middleware to enable applications to intercommunicate with dependent applications, like Web servers, database management systems, and chart programs.
A web server (program) has defined load limits, because it can handle only a limited number of concurrent client connections (usually between 2 and 60,000, by default between 500 and 1,000) per IP address (and IP port) and it can serve only a certain maximum number of requests per second. On the other hand, an application server has a much higher capacity.
Webserver delegation model is fairly simple, when the request comes into the webserver, it simply passes the request to the program best able to handle it (Server side program). It may not support transactions and database connection pooling. Web servers support to deploy .war files only while Application servers support to deploy .war and .ear files.
Application server is more capable of dynamic behaviour than webserver. An application server can be configured to work as a webserver.
The first web server owes its origin to Tim Berners-Lee when as part of a new project to his employer CERN (European Organization for Nuclear Research). In 1989 he wrote two programs which led to the implementation of the first web server. The Application server first came up in the 1990's.
It can be said that a Web server is a subset of an application server. Application servers and web servers are beginning to blur into each other with the expansion of the Internet and Web 2.0 technologies. In most instances currently, software is hosted on web servers, and then downloaded to the local hard drive, where it is installed on the local computer. In the new model that fuses the web server and application server, the software would be hosted online and the user could access it and use it as needed, generally, at a lower rate than if he or she were to purchase the software new.