HTTP requests are innately stateless. The web server does not provide any built-in mechanism to group consecutive requests together. However, once a service program is started, subsequent requests from the same user agent should be routed to the same service program. To make this possible, BIS creates a Session, which is a container of information for the user agent that persists from one request to the next . A session is automatically created when a request first arrives from a particular user agent. The Session contains information that BIS uses to recognize requests as belonging to a sequence, and associates requests with persistent data and services.

A Session is automatically created when BIS receives a request that cannot be associated with an already existing session. Once a Session is created, it persists until:

  1. The Session is complete: this can be requested by either the service program or by a special handler tag-the SessionComplete tag.
  2. A predetermined but adjustable amount of time passes without an additional request from the user agent, referred to as the Inactivity Timeout period.

Active Sessions use server resources, and if a service program is waiting for a request, this can be significant. Because site visitors may simply close the browser window without performing any action that indicates that they are finished with the application, BIS will free those sessions and resources after a predetermined period of inactivity.