Any ASP.NET request is served by making it flow through a pipeline of internal components. The entry point in the ASP.NET pipeline is the HttpRuntime class.
The HttpRuntime creates an object that represents the context of the request the HttpContext class. An instance of this class accompanies the request for the entire request lifetime.
The HTTP context of a request is enriched with references to the intrinsic worker objects such as Request, Response, and Server. In addition, it references the session state, ASP.NET cache, tracer, and identity object.
The execution of the request is governed by a pooled HttpApplication object. An instance of this class is created based on the contents of the global.asax file, if any.
HttpApplication makes the request flow through the pipeline along with its associated HTTP context so that registered HTTP modules can intercept the request, consume any contained information, and add new information if needed.
Modules can fire their own events, and the global.asax file is the place where page authors can put code to catch application-level events.
Standard intrinsic objects such as Request, Response, and Server look like their classic ASP counterparts but provide some specific functionalities. For example, Response manages file downloads and filters page output; Request allows you to manage the incoming request and its values.