<html>
<head>
</head>
<body text=#000000 link=#000066 vlink=006699 alink=#0066ff bgcolor=#ffffff>
<h2>Session System</h2>
A session system is required for almost all web applications.  A session system allows the server to store information about the user currently logged into the system in a session object.  Generally a session object is issued to each user who logs into the web application, and in the object is stored information pertinent to the current user.  A session object is not for long term storage.  The classic example of the use of a session is the "shopping cart" problem.  A customer may travel to a number of pages selecting objects for purchase, after selecting a number of objects they will eventually go to a checkout screen which will show a list of all the objects they've selected throughout their session.  The use of a session in a web applications eases application building, and can increase speed to access to frequently loaded database objects.  The use of a session also aids security; since a session object contains the user experience, it can be expired after a period of inactivity, or after the user logs in again.<br>
<br>
There are two ways of implementing a Session System, one way requires the use of cookies, and the other does not.  Both methods have advantages and disadvantages.  The major disadantage of becoming dependent of cookies is that many firewalls, and many users have recently started blocking cookies.  If the user has turned off cookies in their browser, or is behind a firewall which removes all cookies, the user will not be able to use the web application.  Ultimately when choosing between these two methods, you need to ask the question, "Is it acceptable that users who cannot use cookies cannot use this web application".  Often this answer is no.  Unfortunately this question is rarly asked, and cookie based session systems are becoming increasingly popular because they are easier to use in a poorly designed web architecture.  Project apollo's session system levels the playing field between cookied sessions and non-cookied sessions.  With project apollo, you recieve all the advantages of a non-cookied session, with the simplicity of a cookied session, reducing web development time.<br>
</body>
</html>