HTTP, the protocol over which the web is built, is a stateless protocol. Each HTTP request is user
session context independent, and the server is, on the HTTP protocol level, unaware of any
relationship between consecutive requests.
This has made HTTP a highly scalable and versatile protocol. However, in most Web
applications some notion of a user session – that is short-term, user specific data storage, is
required.
For example, without some sort of state representation a web application cannot distinguish
between logged-in users (or technically put, requests coming from an HTTP client that has
logged in) and non logged-in users. In many cases even more complex data, such as the
contents of a shopping cart, must be maintained between requests and attached to a specific
user or browser.
HTTP leaves the solution of such problems to the application. In the PHP world, as in most weboriented
platforms, two main standard methods exist for storing short-term user specific data:
Cookies and Sessions.