Web Server

Application Server

It is a program which uses the Client/Server model and Hyper Text Transfer Protocol (HTTP) to serve files to web users. The files are served in the form of web pages. It is a server program which resides in a computer inside a distributed network. Business logic for an application-server implementation is provided by this server program.
Web server came into existence in 1989 when Tim Berners- Lee wrote two programs as part of his new project for European Organization for Nuclear Research (CERN). It led to the execution of the first web server. Application server came into existence for the first time in 1990’s.
A computer program or a dedicated computer itself can be a web server. It is a type of software engine.
It accepts HTTP requests from clients and provides HTTP responses. It can also return data in the form of HTML documents and other objects linked to them. It provides different applications to other devices connected in a network.
Web-based applications such as Servlets and JSP are served by a Web Server. Application Server can serve enterprise based applications such as EJBs along with web based applications like Servlets and JSP. An application server can have a built-in web server.
The most important function of a web server is to keep files for web-browsing always active. Downtime, which is the time during which a web sites’ pages are not available to be viewed, should be lesser than a fraction of a second. Application server provides the facility for easily accessing an application’s data. This enhances the availability of files and hence helps in lowering the downtime of a website.
Multi-threading is not supported in web servers. Application servers make use of multi-threading and concepts like connection pooling, isolation pooling etc. to make intercommunication between reliant applications possible. For example, web browsers such as Internet Explorer, Chrome etc. are local programs on the hard drive of a user but the web pages that are requested by the user using these browsers are not local. They are located on the web server. Application server have middleware packages to enable such communication.
The load limit of a web server is restricted. It can handle only a said number of concurrent hits. The number of connections per IP address by default is between 500 and 1000 but it can go from 2 to 60000. Only a particular number of requests can be served by a web server in one second. The load limit is much higher of an application server than that of a web server. This is because an application server has a higher capacity.
Web servers can deploy only files having .war extension. Application server can deploy .ear files as well as .war files.
Web server cannot be configured to work as an application server. Application servers are much more dynamic in behaviour. They can be configured to work as web servers.
Resource Utilization is low. Resource utilization is high.
Web Servers usually come packaged with larger programs for downloading requests for FTP files, building web pages, publishing web pages and serving e-mail etc. It acts like an intermediary between the front-ends which are browser based and the back-ends which are databases and transaction servers.
Server-side scripting is supported by many web servers. This means that we can script the behavior of a web server in different files without changing the actual server. It is a set of components which can be accessed by software developer using an API. Clustering, fail-over, load-balancing, web page generation etc. are handled by application server.
Caching and scalability features for web access are provided by Web servers. These features are not provided by Application servers.
Examples of web server are Apache, Microsoft’s Internet Information Server (IIS) , Novell’s Web Server etc. Examples of Application server are JBoss(Red Hat), JRun(Adobe), WebLogic Server(BEA) etc.