_ 4.1 Information inbakad i HTML
Uppgiften belyser sessionshantering med information inbakad i HTML-länkar. När en användare klickar sig runt på en webbplats så håller inte webbservern reda på vem användaren är, användaren loggar inte in och identifierar sig själv i början av sessionen som man gör när man pratar med exempelvis en epost-server. HTTP-servern är tillståndslös, den har inget "minne".
Om man vill bygga en webbplats där en användare exempelvis ska kunna köpa saker på olika webbsidor på webbplatsen så måste man således själv implementera ett sätt att hålla reda på vem användaren är. Man gör det genom att ge användaren ett unikt nummer som kallas för ett sessions-id och ser till att detta id finns med vart användaren än kommer på webbplatsen. Man kan sedan använda detta sessions-id som en nyckel på webbserversidan för att nå godtyckligt mycket information associerad till detta sessions-id.
Om man vill ha hög säkerhet så använder man ett sessions-id enbart för en enda tidsbegränsad session. Om användaren är inaktiv en viss tid så förfaller då sessions-id:t och man skapar ett nytt sessions-id för användaren. Detta eftersom webbläsare ofta cashar besökta HTML-dokument och då sparas även sessions-id:t om man använder omskrivningar.
Detta kallas för sessionshantering och kan implementeras på två sätt:
- Omskrivning av länkar och formulär sparar sessions-id:t inbakat i HTML-dokumentet (alla länkar och formulärknappar som användaren klickar på sänder med sessions-id:t)
- Användning av kakor sparar sessions-id:t hos klientens webbläsare
I de flesta språk och tekniker på serversidan finns inbyggt stöd för detta för att förenkla för utvecklaren och detta stöd använder främst kakor som implementation och om användaren stängt av användning av kakor så används automatiskt omskrivning istället.
__ Uppgift
Använd följande [HTML-dokument, 05_ass/ip2/4/4.1/example.html]. Det innehåller länkar och ett formulär.
- Skapa först ett webbserversidesprogram som implementerar sessionshantering genom att lägga till ett sessions-id till detta HTML-dokument så att alla klick inom webbplatsen sänder vidare sessions-id:t till nästa sida
- Skapa sen ett webbserversidesprogram som listar all input som kommit från den modifierade HTML-sidan för att kontrollera att allt fungerar (länkarna och formuläret ska alltså gå till detta program)
Man ska inte använda något inbyggt stöd för sessionshantering (inte använda §$_SESSION§ osv).
__ Exempel
Ett enkelt [exempel, 05_ass/ip2/4/4.1/example_1.php].
__ Tips
Formuläret i HTML-dokumentet har dolda fält med markörer:
§
§
__ Hjälp
~ 05_ass/help/01.txt
>
[Klicka här för hjälp, helper.dsv@gmail.com, Webbutv II: 4.1 Information inbakad i länkar: http://people.dsv.su.se/~pierre/i/i.cgi?href=05_ass/ip2/4.1.txt] ½===system_tutoring_message===½
<
~ 05_ass/help/02.txt