HTTP-cookies
HTTP-cookies ger servern en mekanism för att lagra och hämta tillståndsinformation i klientprogrammets system. Med den här mekanismen kan webbaserade program lagra information om valda objekt, användarinställningar, registreringsinformation och annan information som kan hämtas senare.
Cookie-Related rubriker
Det finns två huvuden, Set-Cookie och Cookie, som är relaterade till cookies. Set-Cookie-huvudet skickas av servern som svar på en HTTP-begäran, som används för att skapa en cookie i användarens system. Cookiehuvudet ingår i klientprogrammet med en HTTP-begäran som skickas till en server, om det finns en cookie som har en matchande domän och sökväg.
Set-Cookie rubrik
I Set-Cookie-svarsrubriken används följande format:
Set-Cookie: <name>=<value>[; <name>=<value>]...
[; expires=<date>][; domain=<domain_name>]
[; path=<some_path>][; secure][; httponly]
En eller flera strängsekvenser (avgränsade med semikolon) som följer mönstret namn=värde måste ingå i Set-Cookie svarsrubrik. Servern kan använda dessa strängsekvenser för att lagra data i klientens system.
Förfallodatumet anges med formatet expires=date, där datum är förfallodatumet i Greenwich Mean Time (GMT). Om förfallodatumet inte har angetts upphör cookien att gälla när Internetsessionen har avslutats. Annars sparas cookien i cacheminnet fram till förfallodatumet. Datumet måste ha följande format:
DAY, DD-MMM-YYYYHH:MM:SS GMT
-
DAY
-
Veckodagen (sön, mån, tis, ons, tor, fre, lör).
-
DD
-
Dagen i månaden (till exempel 01 för den första dagen i månaden).
-
MMM-
-
Förkortningen med tre bokstäver för månaden (jan, feb, mar, apr, maj, jun, jul, aug, sep, okt, nov, dec).
-
YYYY
-
Året.
-
HH
-
Timvärdet i militär tid (22 skulle till exempel vara 22:00).
-
MM
-
Minutvärdet.
-
SS-
-
Det andra värdet.
Att ange domännamnet med hjälp av mönsterdomänen =domain_name, är valfritt för beständiga cookies och används för att ange slutet på den domän som cookien är giltig för. Sessionscookies som anger en domän avvisas. Om det angivna domännamnet matchar begäran försöker cookien matcha sökvägen för att avgöra om cookien ska skickas. Om domännamnets slut till exempel är .microsoft.com, kontrolleras begäranden till home.microsoft.com och support.microsoft.com för att se om det angivna mönstret matchar begäran. Domännamnet måste ha minst två eller tre perioder i sig för att förhindra att cookies anges för allmänt använda domännamnsslut, till exempel .com, .edu och co.jp. Tillåtna domännamn skulle likna .microsoft.com, .someschool.edu och .someserver.co.jp. Endast värdar inom den angivna domänen kan ange en cookie för en domän.
Att ange sökvägen med hjälp av mönstersökvägen=some_path, är valfritt och kan användas för att ange en delmängd av url:erna som cookien är giltig för. Om en sökväg anges anses cookien vara giltig för alla begäranden som matchar den sökvägen. Om den angivna sökvägen till exempel är /example matchar begäranden med sökvägarna /examplecode och /example/code.htm. Om ingen sökväg anges antas sökvägen vara sökvägen till resursen som är associerad med Set-Cookie-huvudet.
Cookien kan också markeras som säker, vilket anger att cookien endast kan skickas till https-servrar.
Slutligen kan en cookie markeras som HttpOnly (attribut är inte skiftlägeskänsliga), för att indikera att cookien inte är skriptbar och inte bör avslöjas för klientprogrammet av säkerhetsskäl. I Windows Internet innebär det att cookien inte kan hämtas via funktionen InternetGetCookie.
Cookierubrik
Cookiehuvudet ingår i alla HTTP-begäranden som har en cookie vars domän och sökväg matchar begäran. Cookiehuvudet har följande format:
Cookie: <name>=<value> [;<name>=<value>]...
En eller flera strängsekvenser med formatet namn=värdeinnehåller den information som angavs i cookien.
Generera cookies
Det finns tre metoder för att generera cookies för Microsoft Internet Explorer: använda Microsoft JScript, använda WinINet-funktionerna och använda ett CGI-skript. Alla metoder måste ange den information som ingår i Set-Cookie-huvudet.
Generera en cookie med hjälp av DHTML-objektmodellen
Med hjälp av DHTML-objektmodellen (Dynamisk HTML) kan cookies anges genom att anropa egenskapen cookie för dokumentobjektet, som du ser i följande exempel.
<SCRIPT language="JavaScript">
<!--
document.cookie = "SomeValueName = Some_Value";
-->
</SCRIPT>
Generera en cookie med WinInet Functions
Cookies kan skapas av program med hjälp av funktionen InternetSetCookie. Mer information finns i Ange en cookie.
Generera en cookie med ett CGI-skript
Cookies genereras genom att inkludera en Set-Cookie rubrik som en del av ett CGI-skript som ingår i HTTP-svaret på en begäran.
Följande exempel är ett CGI-skript som innehåller en Set-Cookie-rubrik med hjälp av Perl.
print "Set-Cookie:Test=test_value;
expires=Sat, 01-Jan-2000 00:00:00 GMT;
path=/;"
Not
WinINet stöder inte serverimplementeringar. Dessutom bör den inte användas från en tjänst. För serverimplementeringar eller tjänster använder du Microsoft Windows HTTP Services (WinHTTP).