Application server is an application which processes specific types
of requests and runs perpetually as a daemon/service. It accepts requests
from Web server via some communication protocol, and returns results back
to the Web server. It is always up, and does not need to be started for
each request. Application server does not have to run on the same
computer as Web server. Moreover, there maybe many application servers
running in parallel, and the load can be spread between them evenly
(how do you think Search Engines run?).
For the Web Server<-> Application Server combo
to work together, they need a communication protocol. The underlying technology
used is usually TCP/IP (i.e., the Web Server and Application Server may, but
need not be, on the same computer). In the communication protocol, the Web
server is usually a client of the Application Server, since it is the
Application Server which waits for the requests from Web Server,
and returns results to the Web server. The specialized piece of Web server,
which talks to Application server is usually called
a connector module .
The typical log of events looks like:
- Web server receives the request for dynamic content from the
Web browser.
- Request is reorganized and packaged in a specific format (one required
by the communication protocol) and given to the connector module of
Web server.
- Connector module sends the request to Application server and waits for
the response.
- Connector module receives response from the Application server and
passes it back to Web server.
- Web server resturns the response to Web browser which originated the
request