- Session management
In
human-computer interaction , session management is the process of keeping track of a user's activity across sessions of interaction with thecomputer system .Typical session management tasks in a
desktop environment might include keeping track of which applications are open and which documents each application has opened, so that the same state can be restored when the user logs out and logs in later. For a website, session management might involve requiring the user to re-login if the session has expired ("i.e.", a certain time limit has passed without user activity).Desktop session management
A full description of Session Management under X Window-based systems is on the
X session manager page.Browser session management
Session management is particularly useful in a
web browser where a user can save all open pages and settings and restore them at a later date. To help recover from a system or application crash, pages and settings can also be restored on next run.OmniWeb and Opera are examples of web browsers that support session management. Other modern browsers such asMozilla Firefox support session management through third-party plugins or extensions. Session management is often managed through the application of cookies.Web server session management
Hypertext Transfer Protocol (HTTP) is stateless: a client computer running a web browser must establish a newTransmission Control Protocol (TCP) network connection to the web server with each new HTTP GET or POST request. The web server, therefore, cannot rely on an established TCP network connection for longer than a single HTTP GET or POST operation. Session management is the technique used by the web developer to make the stateless HTTP protocol support session state. For example, once a user has authenticated herself to the web server, her next HTTP request (GET or POST) should not cause the web server to ask her for her account and password again. For a discussion of the methods used to accomplish this please seeHTTP cookie .The session information is stored on the web server using the session identifier (session ID) generated as a result of the first (sometimes the first authenticated) request from the end user running a web browser. The "storage" of session IDs and the associated session data (user name, account number, "etc.") on the web server is accomplished using a variety of techniques including, but not limited to: local memory, flat files, and databases.
In situations where multiple web servers must share knowledge of session state (as is typical in a cluster environment—see
computer cluster ) session information must be shared between the cluster nodes that are running web server software. Methods for sharing session state between nodes in a cluster include: multicasting session information to member nodes (seeJGROUPS for one example of this technique), sharing session information with a partner node (using any of a variety of methods of shared memory), sharing session information between nodes using network sockets, storing session information on a shared file system such as thenetwork file system or theglobal file system , or storing the session information outside the cluster in adatabase . If session information is considered transient, volatile data that is not required fornon-repudiation of transactions and doesn't contain data that is subject to compliance auditing (in theU.S. for example, see theHealth Insurance Portability and Accountability Act and theSarbanes-Oxley Act for examples of two laws that necessitate compliance auditing) then any method of storing session information can be used. However, if session information is subject to audit compliance, consideration should be given to the method used for session storage, replication, and clustering.In a
service oriented architecture Simple Object Access Protocol orSOAP messages constructed with Extensible Markup Language (XML ) messages can be used by consumer applications to cause web servers to create sessions.References
* [http://searchsecurity.techtarget.com/searchSecurity/downloads//Whittaker_04.pdf] Excerpt from "How to Break Web Software: Functional and Security Testing of Web Applications and Web Services" by Mike Andrews and James A. Whittaker.
Wikimedia Foundation. 2010.