Session object
Wat is een sessie?
We praten over een sessie als een gebruiker een pagina van een website opvraagt. Alle
pagina's die de gebruiker opent behoren tot dezelfde sessie. Een sessie eindigt als de
browser gesloten wordt of als de gebruiker voor een bepaalde tijd geen pagina's meer
heeft opgevraagd.
Wat is het Session object?
Binnen een sessie is het handig om gegevens te bewaren die relevant zijn voor de gebruiker,
bijvoorbeeld een gebruikersnaam en password zodat we weten of de gebruiker toegang heeft tot
bepaalde gegevens. Het zou vervelend zijn als de gebruiker deze gegevens telkens weer
op zou moeten geven. We kunnen deze gegevens opslaan in het Session
object. Het Session object werkt ongeveer hetzelfde als het
Application object, met het verschil dat de gegevens in het
Application object voor alle gebruikers "zichtbaar" zijn.
session1.asp
<HTML>
<BODY>
<%
Session("Teller") = Session("Teller") + 1
Response.Write Session("Teller")
%>
</BODY>
</HTML>
Als je de bovenste code meerdere keren zou uitvoeren, zou je denken dat het precies hetzelfde
doet als het Application object. Zelfs als je de browser
waarin het weergegeven wordt sluit en opnieuw opent, telt de teller gewoon door. Dit komt
omdat die browser telkens door de browser waarin je nu leest geopend wordt. Zou je ook deze
sluiten en dan een nieuwe browser openen, dan zou er wel een nieuwe sessie zijn en de teller
begint dan weer bij 1. Wat je ook kunt doen is een nieuwe browser opstarten (vanuit het Start
menu) en dan de pagina nog een keer opvragen.
Hoe werkt het Session object?
De waardes in het Session object worden opgeslagen in het geheugen van
de server. Om bij te houden welke sessie van een bepaalde gebruiker is, wordt er een cookie
naar de browser gestuurd met een unieke waarde erin: de SessionID.
Iedere keer als de browser een aanvraag doet, wordt deze cookie meegestuurd en weet de server
welke sessie erbij hoort. Deze cookie wordt ongeldig als de browser gesloten wordt, of er
20 minuten verstreken zijn sinds de laatste aanvraag.
session2.asp
<HTML>
<BODY>
<%
Response.Write Session.SessionID
%>
</BODY>
</HTML>
Browsers die geen cookies accepteren, kunnen ook niet met een sessie
werken. Daar komt bij dat als je veel waardes opslaat in het Session
object dat dit nadelige gevolgen heeft voor de snelheid van de server. Gebruik het dus alleen
als je het echt nodig hebt.
Het Session object heeft nog meer mogelijkheden. Gezien deze erg
weinig gebruikt worden, zijn die mogelijkheden geen onderdeel van deze lessen.
|