This chapter explained how ASP.NET handles application-level events and manages state:
Global.asax contains event-handling routines that enable handling of application-level events. This includes events that occur when beginning and ending the application, each request, and Session state. Other events include handling of unhandled exceptions and authentication handling.
Application state is for holding information across an entire application. It is global to all users of the application.
Session state is a per-user state bag to hold information for each user during a session. Practical applications include personalization of the Web site for individuals or shopping cart management.