Sdílet prostřednictvím


Soubory cookie HTTP

Soubory cookie HTTP poskytují serveru mechanismus pro ukládání a načítání informací o stavu v systému klientské aplikace. Tento mechanismus umožňuje webovým aplikacím ukládat informace o vybraných položkách, předvolbách uživatele, informacích o registraci a dalších informacích, které lze načíst později.

Existují dvě hlavičky, Set-Cookie a cookie, které se vztahují k souborům cookie. Hlavička Set-Cookie je odeslána serverem v reakci na požadavek HTTP, který se používá k vytvoření souboru cookie v systému uživatele. Hlavička cookie je zahrnuta klientskou aplikací s požadavkem HTTP odeslaným na server, pokud existuje soubor cookie, který má odpovídající doménu a cestu.

Hlavička Set-Cookie odpovědi používá následující formát:

Set-Cookie: <name>=<value>[; <name>=<value>]...
[; expires=<date>][; domain=<domain_name>]
[; path=<some_path>][; secure][; httponly]

Jedna nebo více řetězcových sekvencí (oddělených středníky), které se řídí vzorem název=hodnoty musí být zahrnuty do hlavičky Set-Cookie odpovědi. Server může pomocí těchto řetězcových sekvencí ukládat data do systému klienta.

Datum vypršení platnosti je nastaveno pomocí formátu vyprší =datum, kde datum je datum vypršení platnosti v Greenwich Mean Time (GMT). Pokud není nastavené datum vypršení platnosti, platnost souboru cookie vyprší po skončení internetové relace. V opačném případě se soubor cookie uchová v mezipaměti až do data vypršení platnosti. Datum musí používat následující formát:

DEN, DD-MMM-YYYYHH:MM:SS GMT

DAY

Den v týdnu (Ne, Po, Út, St, Čt, Pá, So).

DD

Den v měsíci (například 01 pro první den v měsíci).

MMM

Třípísmenná zkratka pro měsíc (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec).

YYYY

Rok.

HH

Hodinová hodnota v vojenském čase (například 22 bude 10:00).

MM

Hodnota minuty.

SS

Druhá hodnota.

Zadání názvu domény pomocí vzorové domény=domain_nameje volitelné pro trvalé soubory cookie a slouží k označení konce domény, pro kterou je soubor cookie platný. Soubory cookie relace, které určují doménu, jsou odmítnuty. Pokud se zadaný název domény shoduje s požadavkem, soubor cookie se pokusí shodovat s cestou, aby zjistil, jestli se má soubor cookie odeslat. Pokud je například konec názvu domény .microsoft.com, budou se požadavky na home.microsoft.com a support.microsoft.com kontrolovat, aby se zjistilo, jestli zadaný vzor odpovídá požadavku. Název domény musí mít alespoň dvě nebo tři tečky, aby se zabránilo nastavení souborů cookie pro široce používané konce názvů domén, jako jsou .com, .edu a co.jp. Povolené názvy domén by se podobaly doméně .microsoft.com, .someschool.edu a .someserver.co.jp. Soubor cookie pro doménu můžou nastavit jenom hostitelé v zadané doméně.

Nastavení cesty pomocí cesty vzor=some_path, je volitelné a lze použít k určení podmnožina adres URL, pro které je soubor cookie platný. Pokud je zadána cesta, soubor cookie se považuje za platný pro všechny požadavky, které odpovídají této cestě. Pokud je například zadaná cesta /example, požadavky s cestami /examplecode a /example/code.htm by odpovídaly. Pokud není zadána žádná cesta, předpokládá se, že cesta k prostředku přidruženému k hlavičce Set-Cookie.

Soubor cookie lze také označit jako zabezpečený, což určuje, že soubor cookie lze odesílat pouze na servery https.

Nakonec lze soubor cookie označit jako HttpOnly (atributy nerozlišují malá a velká písmena), aby bylo možné indikovat, že soubor cookie není skriptovatelný a neměl by být z bezpečnostních důvodů odhalen klientské aplikaci. V systému Windows Internet to znamená, že soubor cookie nelze načíst prostřednictvím funkce InternetGetCookie.

Hlavička cookie je součástí všech požadavků HTTP, které mají soubor cookie, jehož doména a cesta odpovídají požadavku. Hlavička cookie má následující formát:

Cookie: <name>=<value> [;<name>=<value>]...

Jedna nebo více sekvencí řetězců, které používají formát název=hodnotu, obsahují informace, které byly nastaveny v souboru cookie.

Generování souborů cookie

Existují tři metody pro generování souborů cookie pro Aplikaci Microsoft Internet Explorer: pomocí Microsoft JScriptu, pomocí funkcí WinINet a pomocí skriptu CGI. Všechny metody musí nastavit informace, které jsou součástí hlavičky Set-Cookie.

Pomocí objektového modelu Dynamic HTML (DHTML) lze soubory cookie nastavit voláním cookie vlastnost objektu dokumentu, jak je znázorněno v následujícím příkladu.

<SCRIPT language="JavaScript">
<!--
    document.cookie = "SomeValueName = Some_Value";
-->
</SCRIPT>

Soubory cookie lze vytvářet aplikacemi pomocí funkce InternetSetCookie. Další informace naleznete v tématu Nastavení souboru cookie.

Soubory cookie se generují zahrnutím hlavičky Set-Cookie jako součást skriptu CGI, který je součástí odpovědi HTTP na požadavek.

Následující příklad je skript CGI, který obsahuje hlavičku Set-Cookie pomocí Perl.

print "Set-Cookie:Test=test_value; 
      expires=Sat, 01-Jan-2000 00:00:00 GMT;
      path=/;"

Poznámka

WinINet nepodporuje implementace serveru. Kromě toho by se nemělo používat ze služby. Pro implementace serverů nebo služby použijte microsoft Windows HTTP Services (WinHTTP).