Sunday, 14 April 2013

Request processing in IIS 6



  • HTTP.SYS receives the request made thru browser.
    • checks if a cached version of the request is available ... if yes then the cached version is returned.
    • Holds the request until a worker process is available to serve the request.
  • HTTP.SYS forwards the request to the Application Pool.
  • The worker process (w3wp.exe) loads the ISAPI Filter depending on the type of resource requested. e.g.: w3wp.exe loads aspnet_isapi.dll for an APSX page and starts an HTTPRuntime.
  • HTTPRuntime is the entry point of an application.
  • The HttpRuntime.ProcessRequest() method signals the start of processing. HttpContext object represents the current HTTP request. The object provides access to the intrinsic Request, Response, and Server properties for the request.
  • The HttpRuntime creates a pool of HttpApplication objects.
  • The request passes through the HTTP Pipeline.
  • HTTP Modules are executed against the request until the request hits the ASP.NET page HTTP Handler.
  • The page life cycle begins.


Summary :
HTTP.SYS > Application Pool > W3WP (Worker process) > ISAPI Filter > ASPNet_ISAPI.dll > HTTPRuntime > HTTPRuntime.processRequest() > HTTPContext > Request passes thru the HTTP Pipeline > HTTP Modules > Once the request leaves the HTTP Pipeline, Page life cycle.