|
Posted: Jun. 10, 2002

IIS 6.0 receives HTTP requests in kernel mode and delivers them
to the applications isolated worker process.
When an HTTP request arrives at the kernel-mode HTTP Listener (HTTP.sys,
bottom), it checks the validity of the request. If the request is invalid, the appropriate
HTTP error is immediately returned to the requester. If the request is valid, HTTP.sys
checks to see if it can handle the request from its cache. If the response is in the
cache, HTTP.sys sends the response immediately. Otherwise, HTTP.sys puts the request in a
separate request queue for each worker process (application).
If the necessary worker process is not listening on the request queue,
then HTTP.sys signals the Web Administration Service (WAS) to start and configure a worker
process based on the configuration information stored in XML format in the metabase.
If a worker process or a group of worker processes (called a Web garden)
is already started and connected to the request queue, the worker process pulls the
request from the queue, processes it through any ISAPI filter or extension and Web
application code, and returns the response to the HTTP.sys and the requester.
The WAS also monitors the health of a worker process and if, for
example, the process does not respond or has exceeded a threshold (e.g., the number of
hours running or number of requests handled), WAS coordinates with the HTTP Listener to
hold requests in the queue while WAS stops the worker process and restarts it.
|