HTTP COOKIE

En cookie (webb-kaka) är ett stycke text som lagras i användares webbläsare. En cookie kan användas för autentisering, lagring av preferenser, en shoppingvagns innehåll, identifieraren för en server-baserad session, eller något annat som kan uppnås genom att lagra TEXT data.

En cookie består av ett eller flera namn-värdepar som kan innehålla olika slags information. Informationen kan vara krypterad av säkerhetsskäl. En cookie skickas från webbservern som en del av HTTP-headern.

Cookies kan vara med eller utan ett utgångsdatum. Cookies utan ett utgångsdatum existerar tills webbläsaren avslutas, medan kakor med ett utgångsdatum får lagras av webbläsaren fram till det utgångsdatum passerar. Användare kan också manuellt ta bort cookies för att spara plats eller för att undvika integritetsfrågor.

Cookies är ren text och kan öppnas och läsas av enklaste textredigerare. Cookies är ingen körbar fil och som sådan kan den inte replikera sig själva och är därför inget virus. Men på grund av webbläsaren mekanism för att ställa in och läsa cookies kan de användas som spionprogram. Anti-spyware-produkter kan varna användare om kakor eftersom cookies kan användas för att spåra personer. Se parametrarna "Secure" och "HttpOnly" längre ner.

De flesta moderna webbläsare tillåter användaren att avgöra om du accepterar cookies och tidsramen för att behålla dem. Att avvisa cookies gör vissa webbplatser obrukbara.

Set-Cookie Standarden

http://tools.ietf.org/html/rfc2109

Syntaxen för Set-Cookie i http response huvudet är:

set-cookie "Set_Cookie:" [cookies]
cookies 1#cookie
cookie NAMN "=" VÄRDE (en lista separerad med ";" [semikolon])
NAME attribut
VALUE värde
cookie-av "Comment" "=" value
"Domain" "=" value
"Max-Age" "=" value
"Path" "=" value
"Secure"
"Version" "=" 1*DIGIT

Set-Cookie skrivs i HTTP huvudet med "Set-Cookie:", följt av en kommaseparerad [,] lista med en eller flera cookies. Varje cookie börjar med ett NAME = VALUE-par, följt av noll eller fler semikolon-separerad [;] attribut-värdepar. Syntaxen för attribut-värdepar visades tidigare. Kakans NAMN = VÄRDE attribut- värdepar måste komma först i varje kaka. De andra, om det finns, kan förekomma i vilken ordning som helst. Om ett attribut förekommer mer än en gång i en cookie, är beteendet odefinierat.

NAME=VALUE Obligatoriskt. Namnet på informationen ("cookie") är NAME, och dess värde är VALUE. Namn som börjar med $ är reserverade för andra ändamål och får inte användas av applikationer. Värdet är ogenomskinlig för klienten och kan vara allt det ursprungsservern väljer att skicka, vanligtvis ASCII-kodad text. "Ogenomskinlig" innebär att innehållet är av intresse och relevans endast för ursprungsservern. Innehållet kan i själva verket vara läsbara för alla som granskar "Set-Cookie" sidhuvudet.
Comment=comment Valfritt. Eftersom cookies kan innehålla privat information om en användare så ger cookieattributet möjlighet att ge information till användaren om avsikten med kakan.
Domain=domain Valfritt. Domain attributet anger domänen för vilken kakan är giltig. Ett tydligt angivet domännamn måste alltid börja med en punkt. T.ex.
domain=.heap.se
Max-Age=delta-seconds
Valfritt. Max-Age attributet definierar cookiens livslängd i sekunder. Delta-sekunder värdet är ett decimaltal icke-negativt heltal. Efter "delta-sekunder" sekunder förflutit bör klienten kasta cookien. Ett värde på noll innebär cookien ska kasseras omedelbart.
Path=path Valfritt. Path attributet anger den delmängd av webbadresser som denna kaka gäller.
Secure Valfritt. Secure attributet (utan extra parameter) leder klienten att endast använda säkra metoder för att kontakta ursprungsservern när den skickar tillbaka denna cookie, t.ex. https://...
HttpOnly Valfritt (utan parameter), men viktigt för säkerheten. Denna parameter gör att kakan inte kan läsas av JavaScript som finns hos klienten. Detta skulle kunna innebära att innehållet i kakan kan skickas vidare till obehörig part.
Version=version Obligatoriskt. Version attribut, ett heltal, identifierar vilken version av specifikationen cookien uppfyller kraven. För denna specifikation gäller:
Version=1

 

Skriva Cookies i Perl

I ett CGI program, skrivet i Perl (PHP undantaget), så börjar man normalt sett skriva ut vilken typ av information som ska visas i webbläsaren. Huvudtyperna är TEXT eller BINMODE men för webben specificerar man även MIME-typen. Läs mer om olika MIME typer här. För att leverera en kaka så gör man det vanligtvis via en CGI genererad webbsida. Exempel för SSL (https://...), innan HTML koden skriver man:

print "Set-Cookie: kaknamn=hejsan; path=/; expires=Fri Dec  2 22:47:39 2011 GMT; version=1; Secure; HttpOnly\n";
print "Content-Type: text/html; charset=utf-8\n\n";
print "<!DOCTYPE html>\n";
print "<html><head>osv...";

Om man vill att kakan ska försvinna så sätter man expires=0 (siffran 0).

Skriva Cookies i PHP

<?php setcookie('kaknamn', 'hejsan', time() + 300); ?>
<!DOCTYPE html>
<html>
<head>
bla..
</head>
<body>osv..

Länkar och relaterade  dokument:

Cache-Control (denna site)

Sarafi cookie problem (denna site)

http://www.w3.org/International/O-HTTP-charset

 

[•]

 


"httpcookie", Hans E Andersson: 2010-11-30 11:45:03, ändrad: 2015-02-22 22:54:00

 

Copyright © 2005 - 2019 HEAP. Alla rätter förbehållna. Integritetspolicy