Once a web server accepts an HTTP connection, that connection cannot be "passed off" to another system: it must handle that connection to completion.
Suppose an HTTP connection has been established between the client (e.g., browser) and the web server. That connection must remain open until the same web server generates a response. Also, even though information from the initial request may be is passed to another tier, the result of that information must be returned _back_ through the same web server for final processing before being returned to the client. During that time the web server must maintain all data structures necessary for the
- HTTP connection, and
- connection to the next tier (e.g., database connection).
This is where any scalability limitations apply.
It is better to maintain a redirector _ahead_ of the web servers. The purpose of this component is to redirect the request to the least-loaded web server.