Client-server systems are defined by servers providing information services to clients. Usually, there are more clients than servers, so servers need a way to keep track of which client is which.
Session state is client-specific data that is accumulated during the session.
For the purposes of this discussion, session state is any information relating to a particular user's interaction with a J2EE application in a single session. User name, user preferences, and shopping cart contents are all examples of session state in the Java Pet Store sample application. Originally, Web servers supported no concept of session or of session state. As a result, users were indistinguishable from one another, and there was no way for a user to accumulate information over a series of service requests, for use in a subsequent transaction. As Web applications have become more sophisticated, several mechanisms for maintaining user sessions, and the state associated with them, have developed.