The basic advantages and disadvantages of using session. I have describe in details with each type of session at later point of time.
Advantages :
* It helps to maintain user states and data to all over the application.
* It can easily be implemented and we can store any kind of object.
* Stores every client data separately.
* Session is secure and transparent from user.
Disadvantages :
* Performance overhead in case of large volume of user, because of session data stored in server memory.
* Overhead involved in serializing and De-Serializing session Data. because In case of StateServer and SQLServer session mode we need to serialize the object before store.
Besides these, there are many advantages and disadvantages of session that are based of session Types.
Advantages :
* It helps to maintain user states and data to all over the application.
* It can easily be implemented and we can store any kind of object.
* Stores every client data separately.
* Session is secure and transparent from user.
Disadvantages :
* Performance overhead in case of large volume of user, because of session data stored in server memory.
* Overhead involved in serializing and De-Serializing session Data. because In case of StateServer and SQLServer session mode we need to serialize the object before store.
Besides these, there are many advantages and disadvantages of session that are based of session Types.

Web is Stateless, means a new instance of the web page class is re-created each time the page is posted to the server. As we all know HTTP is a stateless protocol, it can't hold the client information on page. If user inserts some information, and move to the next page, that data will be lost and user would not able to retrieve the information. So what we need? we need to store information. Session provides that facility to store information on server memory. It can support any type of object to store along with our custom object. For every client Session data store separately, means session data is stored as per client basis.
State Management using session is one of the asp.net best features, because it is secure, transparent from users and we can store any kind of object with in it. Along with advantages, some times session can causes performance issue for heavy traffic sites because its stored on server memory and clients read data from the server itself. Now lets have a look at the advantages and disadvantages of using session in our web application.
The Global.asx file is an optional file that contains code for responding to application level events raised by ASP.NET. This file is also called as ASP.NET application file. This file resides in the root directory of an application. If we are not defining this file in application, the ASP.NET page framework assumes that you have not defined any applicationa/Session events in the application.

Followign are the list of events handled in the global.asax file.
Event: Application_Start
When an application starts. This event occurs only one time in an application’s life cycle. It occurs again when you restart the application. It’s the best place to count number of visitors.
Event: Application_End
This event occurs when application ends.
Event: Session_Start
This event occurs whenever a new session starts. This is the best place to count user sessions for an application
Practical Usage: Setting user specific values, caching items based upon user context.
Event: Session_End
This event Opposite of the previous event.
Event: Application_Error
This event occurs when an unhandled error or exception occurs in an application.
Event: Application_BeginRequest
This event occurs every time when server makes a request. This event may occur multiple times in an applications life cycle.
Event: Application_End
This event occurs when an application closes

Followign are the list of events handled in the global.asax file.
Event: Application_Start
When an application starts. This event occurs only one time in an application’s life cycle. It occurs again when you restart the application. It’s the best place to count number of visitors.
Event: Application_End
This event occurs when application ends.
Event: Session_Start
This event occurs whenever a new session starts. This is the best place to count user sessions for an application
Practical Usage: Setting user specific values, caching items based upon user context.
Event: Session_End
This event Opposite of the previous event.
Event: Application_Error
This event occurs when an unhandled error or exception occurs in an application.
Event: Application_BeginRequest
This event occurs every time when server makes a request. This event may occur multiple times in an applications life cycle.
Event: Application_End
This event occurs when an application closes