If you look at the MSDN documentation:
ASP.NET Session State Overview[
^] it says:
"ASP.NET session state identifies requests from the same browser during a limited time window as a session, and provides a way to persist variable values for the duration of that session."
Which means that the Session is shared between a single browser instance but by multiple tabs - which makes sense when you think about it from a user POV:
I open Chrome to your shop page, and browse for items - I open three different products in three different tabs.
I look at ProductA and I'm not sure if it need it.
I decide to buy ProductB, so I click on "Buy" and the item is stored in the Session.
I then look at ProductC and decide to buy that as well - I click on "Buy" and it's it stored in the Session.
I then go back to ProductA and decide that I don't want it - so I click on the "Checkout" button to pay for my goods.
If the Session wasn't shared, then niether ProductB or ProductC would be in the shopping basket (as shown by the Session) when I got there, since I came from the ProductA page.
If I open FireFox instead of Chrome, then I get a new Session, but again, it's shared between the FireFox tabs.