The HTTP protocol is essentially a protocol providing for file transfer between the server and the client. Therefore, the HTTP protocol is said to be "stateless;" i.e., the server receives a request, and the server satisfies the request with a file transfer, regardless of what has happened before with this client. This statelessness has been a challenge to those developing applications to be delivered over the web.
For instance, a banking application will need to keep track of the account number of the individual making inquiries, even though the individual makes repeated inquiries and updates using several different screens (web pages). How is application state maintained in such applications?