Introduktion af teorien bag cookies

Cookies er en udvidelse lavet af Netscape til HTTP/1.0-protokollen, der gør det muligt for serveren at gemme informationer hos klienten - om klienten. Cookies kaldes også for Persistent Client State HTTP Cookies, hvilket forklarer, at man med cookies kan opbevare vedvarende tilstandsoplysninger om klienten. Dette giver mange muligheder for designere af web-sider, da HTTP-protokollen ellers er tilstandsløs.

Dette kan bruges til at se om en specifik klient, der ønsker at se en web-side, har været hos serveren før. Udover at kunne identificere en klient, kan cookies også benyttes til en lang række andre ting. Cookies kan eksempelvis benyttes til at gemme oplysninger om brugernavn, foretrukne indstillinger og andre vedvarende tilstande, der kan være nyttige at gemme fra besøg til besøg.

Der sker i store træk følgende:

  • Når brugeren første gang besøger en web-side, der indeholder en cookie, bliver denne gemt på brugerens maskine af brugerens browser på opfordring fra serveren.
  • Næste gang brugeren besøger den samme web-side (med den samme browser) sender brugerens browser cookien afsted til serveren.

Umiddelbart kunne det lyde som en sikkerhedstrussel, at en fremmed server kan få adgang til oplysninger gemt på ens personlige harddisk. Netop dette spørgsmål og det faktum, at brugeren ikke selv er herre over sine cookies, er en af grundene til, at mange er imod brugen af cookies. Denne problematik behandler vi i afsnittet om sikkerhed.

De fleste browsere såsom Netscape Navigator og Microsoft Internet Explorer understøtter cookies. I dette projekt vil vi som tidligere nævnt begrænse os til kun at omtale implementering af cookies i de to mest brugte browsere i dag; nemlig Netscape Navigator 2.0 og senere versioner samt Microsoft Internet Explorer 3.02 og senere versioner.

I det følgende kommer vi ind på anvendelsesmuligheder for cookies, hvordan de bruges, og hvordan de fungerer.

Anvendelse

Der er flere forskellige grunde til, at flere og flere web-designere bruger cookies. Den helt afgørende er, at serveren har mulighed for at opbevare oplysninger om en klients tilstand på et givent web-site. Her er nogle eksempler på brug af cookies på Internettet.

Web tracking

Noget af det mest interessante ved at udnytte et medie kommercielt er at finde ud af, hvor mange der modtager informationerne via mediet. På WWW kalder vi det web tracking, og det kan bruges til at tilpasse web-siderne til det publikum, man ved besøger siderne. Jo bedre, man kender sit publikum, desto bedre kan siderne tilpasses. Hvis det viser sig, at visse sider aldrig besøges, kan det for eksempel skyldes, at de ligger for godt gemt eller ikke præsenteres som interessante.

Indtil nu har der været en lang række problemer med de normale optællinger af besøgende på web-sider på Internettet. En normal counter på en web-side tæller, hvor mange gange en given side er blevet requestet (et count pr. HTTP request). Det kan enten betyde, at der tælles op hver gang en bruger trykker på reload, eller hver gang en ny bruger beder om siden. Dette giver et falskt billede af de besøgende, fordi en given bruger f.eks. kan have trykket reload 100 gange, men det betyder jo ikke, at han har set siden 100 gange. Her tælles altså for mange hits. Det samme er tilfældet, hvis serveren tæller antal besøgende på baggrund af IP-adressen, der requester siden. Hvis der f.eks. sidder 1000 mennesker bag en firewall, vil de oftest have samme IP-adresse uden for firewallen, og dermed vil de optræde som én person i stedet for 1000 i optællingen. Her tælles altså for få hits. Ligeledes giver det problemer, hvis brugere benytter dynamisk tildelte IP-numre.

Et andet problem er, hvis man benytter en proxy-server. De enkelte sider bliver oftest cachet på selve proxy-serveren. Det betyder at optællingen ikke bliver korrekt, fordi en forespørgsel på siden sker til den proxy-server, hvor siden er cachet, i stedet for på den egentlige server på Internettet. Resultatet er, at en side hentet fra proxy-serveren ikke figurerer i optællingen. Benytter en web-side derimod cookies, skal cookies ifølge specifikationen ikke caches på proxy-serveren [Netscape] men skal altid sendes mellem klienten og serveren.

Hvis man effektivt kan identificere, hvilken klient der besøger ens web-sider har det store perspektiver. I kommercielt øjemed er det f.eks. en fordel, at den samme bruger ikke ser den samme reklame flere gange. Amerikanske firmaer som DoubleClick [www.doubleclick.com] og Focalink [www.focalink.com] bruger cookies til netop dette. På den måde kan de godtgøre overfor deres annoncører, at hvis x antal mennesker har set en given reklame, er det rent faktisk x forskellige mennesker, der har set den.

Cookies kan benyttes til at identificere klienten, da serveren, første gang klienten laver et "HTTP Request" på web-siden, kan tildele klienten en entydig identifikation, og på denne måde identificere klienten næste gang serveren bliver kontaktet af netop denne klient. Det bør dog bemærkes, at brugeren stadig vil være anonym, da identifikationen typisk blot vil være et tilfældigt genereret tal.

Fordelen ved at benytte cookies er, at man kan komme ud over problemet med caching på proxy-servere, da proxy-serveren kan sættes op til ikke at cache "Set-Cookie HTTP Header". Sættes Proxy-serveren ikke specifikt op til dette, har man også ved denne metode cache-problemet.

Ved brug af cookies har man yderligere den fordel, at man kan differentiere på forskellige variable. Man kunne for eksempel man nøjes med at registrere antal "HTTP Request" fra klienten pr. tidsenhed (dag, time, minut etc.). Dette kan løses ved hjælp af et tidsstempel placeret sammen med identifikationen af klienten. Det vil også være muligt at kunne registrere besøg fra klienten pr. browser-session. Dette kunne løses ved hjælp af en midlertidig cookie der slettes når browseren lukkes, samt en identifikation af klienten i en vedvarende cookie. Differentiering må anses for også at være en væsentlig fordel i cookie-sammenhæng. Der er dog stadig den ulempe ved cookies lageret hos klienten, at brugeren af klienten har mulighed for fysisk at slette, eller slet ikke at modtage en cookie, hvilket selvfølgelig har en negativ konsekvens for web tracking.

Hvis man tæller pr. browser-session vil det betyde, at hvis en bruger eksempelvis surfer forbi vores web-sider, derfra videre til IBM's sider, over til Microsoft for til sidst igen at returnere til vores web-sider, vil hans to besøg indenfor samme browser-session kun tælle som et besøg på vores web-sider. Først hvis han lukker sin browser, starter op igen og besøger siderne, vil det tælle som et nyt besøg.

Brugertilpasning

En anden mulighed kan være at benytte en cookie til at opbevare brugerens foretrukne indstillinger.

Det kan være, at man foretrækker bestemte oplysningerne frem for andre, en speciel baggrund, eller noget helt tredje. Cookies kan gemme disse informationer, så hver gang man besøger den pågældende web-side vil man få "sin egen" opsætning med netop de indstillinger, man har valgt. Et eksempel på en sådan tjeneste findes hos The Old Farmer's Almanac [www.almanac.com]. Hver gang man vender tilbage, bliver man budt velkommen med fornavn samt et link til en vejrudsigt for netop det område, man bor i (dette virker desværre kun, hvis man bor i USA eller Canada). Andre tjenester med sådanne muligheder er eksempelvis My Yahoo! og MSN.

Brugerhjælp

Et af de problemer, man ofte kæmper med som bruger af WWW, er den enorme mængde information, der er til rådighed. Mange gange er det svært at overskue, om information på en web-side har ændret sig siden sidst, fordi man ofte skal læse en masse igennem. Her kan cookies hjælpe brugeren på den måde, at en cookie kan benyttes til at huske, hvornår en given web-side blev besøgt sidst. Denne oplysning, sammenholdt med hvornår siden sidst blev opdateret, kan benyttes til at fortælle brugeren ved næste besøg, at siden er opdateret. På den måde slipper man for at læse en hel side igennem bare for at finde ud af, at den ikke er blevet opdateret. En side med en sådan anvendelse af cookies findes hos fagbladet Ingeniøren|net.

En anden form for hjælp er at sørge for, at brugeren slipper for en masse trivielle indtastninger. Det kan f.eks. være et sted, der kræver et login, for at brugeren får adgang. Et eksempel på et login for at benytte en tjeneste kan ses hos FDM. FDM bruger ikke cookies, men det illustrerer meget godt, hvad man kan spare en bruger for. Denne side ville man f.eks. ikke få at se, hvis man én gang havde indtastet sit medlemsnummer, og FDM derefter brugte cookies til at opbevare medlemsnummeret i. Et eksempel på et sted, der bruger cookies til netop dette, er den amerikanske avis New York Times.

Online ordering

Med tiden vil handel via Internettet formodentlig blive lige så almindeligt som at gå ned til den lokale købmand. Når man skal handle via Internettet, er det dog noget mere upersonligt end hos den lokale købmand, men med cookies kan man sørge for, at brugeren bliver genkendt ved navn. Udover dit navn skal butikken også have en lang række praktiske ting at vide såsom adresse, postnummer og kreditkort-oplysninger. Med cookies kan man gemme alle disse ting fra det første besøg, og så slipper brugeren for at taste det ind, hver gang han skal købe noget.

På samme måde kan man give en bruger muligheden for at samle varer sammen i en indkøbskurv, og så lade ham forlade web-siden for f.eks. at checke priser et andet sted. Ved hjælp af cookies kan butikken så huske, hvad han har i indkøbskurven, når han kommer tilbage, og han kan så fortsætte sit indkøb.

« Projektet: Konklusion - Teori: Sikkerhed »