The JSP Files (part 6): State Of Grace - Wasted, Dude! (
Page 2 of 9 )
It's one of the things geeks say to each other when they want to impress
the young women in earshot: "HTTP is a stateless protocol, and the Internet
is a stateless development environment". In simple language, all this means
is that the HyperText Transfer Protocol, which is the backbone of the Web,
is unable to retain a memory of the identity of each client that connects
to a Web site, and therefore treats each request for a Web page as a unique
and independent connection, with no relationship whatsoever to the
connections that preceded it - very similar to the behaviour of some of
today's more adventurous teenagers, who get drunk every night, wake up the
next morning with no memory at all of what happened, and go out again in
the evening to do the same thing all over again...
Now, so long as you're aimlessly surfing from one site to another, this
works without a problem. But what if you've decided to buy a few discs from
CDNow.com? In a "stateless environment", it would be very difficult to keep
track of all the items you've shortlisted for purchase, as the stateless
nature of the HTTP protocol would make it impossible to keep track of the
items selected.
Consequently, what is required is a method that makes it possible to
"maintain state", something that allows client connections to be tracked
and connection-specific data to be maintained. And thus came about
"cookies", which allowed Web sites to store client-specific information in
a file on the client system, and access the information in the file
whenever required. So, in the shopping cart example above, the items
selected would be added to the cookie, and would be retrieved and presented
to the customer in a consolidated list during the billing process.
Why are they called "cookies"? The PR agency handling the account was
obviously asleep at the wheel.