A browser-session is a mechanism to allow a web server to associate a series of requests from the same browser.

As HTTP is a stateless protocol, browser sessions are necessary for a web server to be able to recognise that multiple requests from a browser are associated. It enables the server to store information related to a particular user's session - for example, without a session, you might need to send your authentication details with every single request.

This article gives a great explanation of the concepts involved, plus also gives some rather handy debugging tips for session-related bugs!

http://machinesaredigging.com/2013/10/29/how-does-a-web-session-work/

The link above is from this Stack Overflow question, which is also worth reading: http://stackoverflow.com/questions/3804209/what-are-sessions-how-do-they-work