Cookie (po anglicky koláčik, oblátka, sušienka) je v protokole HTTP malé množstvo stavových dát, ktoré WWW server pošle webovému prehliadaču súčasne s požadovanou webovou stránkou daného webového sídla, ak toto používa cookies (množné číslo od cookie). Ak sú cookies v prehliadači povolené, uložia sa na počítači (alebo smartfóne alebo tablete) používateľa, zvyčajne ako krátky textový súbor na určené miesto. Pri ďalšej požiadavke prehliadača na stránku z toho istého webového sídla (prakticky z tej istej domény napríklad passwords.example.org) potom prehliadač posiela späť serveru aj uložené cookie alebo viac cookies, ktoré si pýta už v hlavičke stránky. V prípade dočasných cookies sú informácie zapamätané len po dobu trvania aktuálnej návštevy (session) daného sídla, v prípade permanentných cookies aj pri ďalších návštevách až do uplynutia platnosti cookies, alebo ich odstránenia (vymazania) používateľom.
Cookies zvyčajne slúžia na rozlišovanie jednotlivých užívateľov. Ukladajú sa do nich najčastejšie používateľské predvoľby (napríklad jazyk) a pod. Myšlienku cookies navrhol Lou Montulli, vtedy pracujúci vo firme Netscape Communications.
Názov cookie – sušienka je odvodený z anglosaského zvyku ponúknuť návšteve obľúbenú sušienku na vytvorenie príjemnejšej atmosféry. Cookies majú viaceré výhody ale môžu byť aj zneužité na sledovanie užívateľa, preto je dôležité rozumieť ich účelu, čo umožňuje zvoliť správne nastavenie prehliadača a rozhodnutie o tom, či prijať alebo zamietnuť prijatie a ukladanie cookies.
Jann Horn v rámci projektu Google Project Zero popísal spôsoby, ako môžu byť cookies čítané sprostredkovateľom komunikácie (anglicky Man-in-the-middle) ako sú napríklad poskytovatelia Wi-Fi hotspotov. Za týchto okolností odporúča použiť prehliadač v privátnom režime prehliadania, ktorý sa v rôznych prehliadačoch nazýva ako Private Browsing (Safari), Inkognito/Incognito (Google Chrome), InPrivate (Internet Explorer, Microsoft Edge). V tomto režime sa cookies nezapisujú natrvalo resp. sa odstraňujú priamo prehliadačom. Nastavenie prehliadača na prijímanie cookies je podľa Zákona o elektronických komunikáciách (§ 55 ods. 5 pozri dole celé znenie) považované za súhlas s používaním cookies. Preto ak navštívite slovenské webové stránky a v prehliadači je povolené prijímanie súborov cookie, považuje sa to za prijatie podmienok používania súborov cookie daného sídla a preto je jedno kde na oznam o používaní cookies kliknete.
V úvode Všeobecného nariadenia o ochrane údajov (GDPR) sú cookies (odst. 30) definované ako online identifikátory, ktoré ..môžu zanechávať stopy, ktoré sa najmä v kombinácii s jedinečnými identifikátormi a inými informáciami získanými zo serverov môžu použiť na vytvorenie profilov fyzických osôb a na ich identifikáciu a preto sú považované za osobné údaje. (Pozri ďalej Bezpečnosť a ochrana súkromia.) náhľad|HTTP cookies dostali svoje meno podľa populárnej pečenej pochúťky. Na tomto obrázku sú domáce koláčiky s čokoládou uložené na sebe (angl. stack).
Názov a história Termín „cookie“ vymyslel programátor webového prehliadača Mosaic Lou Montulli. Bol odvodený od výrazu „magic cookie“ (čarovný koláčik), čo je balík údajov, ktoré program prijíma a posiela späť nezmenené a používajú ho programátori Unixu. Prvá verzia prehliadača, ktorá podporovala súbory cookie bola verzia 0.9beta Mosaic Netscape vydaná 13. októbra 1994. Prvým použitím cookies (mimo laboratórií) bola kontrola, či návštevníci webovej stránky Netscape už stránku navštívili. Montulli požiadal o patent na cookies v roku 1995 a v roku 1998 mu bol udelený. Podpora pre cookies bola ale už integrovaná aj do Internet Explorerom verzii 2, vydanej v októbri 1995.
Zavedenie cookies nebolo v tom čase verejnosti známe. Predvolene boli súbory cookie akceptované a používatelia neboli upozornení na ich prítomnosť (na internete a vo svojom počítači). Verejnosť sa o súboroch cookie dozvedela až po tom, čo denník Financial Times o nich 12. februára 1996 uverejnil článok. V tom istom roku súbory cookie získali veľkú pozornosť médií, najmä z dôvodu potenciálnych dôsledkov na ochranu súkromia. O cookies sa potom diskutovalo na dvoch vypočutiach Federálnej obchodnej komisie v USA v rokoch 1996 a 1997.
V tom období už prebiehal formálnych špecifikácií pre cookies. Diskusie o formálnej špecifikácii sa začali už v apríli 1995 na konferencii www-talk. V rámci Internet Engineering Task Force (IETF) bola vytvorená špeciálna pracovná skupina. Brian Behlendorf a David Kristol navrhli dva alternatívne návrhy na zaznamenanie stavu transakcií HTTP. Skupina na čele so samotným Kristolom a Lou Montulli sa čoskoro rozhodla použiť špecifikáciu Netscape ako východiskový návrh. Vo februári 1996 pracovná skupina identifikovala súbory cookie tretích strán ako značnú hrozbu pre súkromie a špecifikácia vytvorená skupinou bola zverejnená ako RFC 2109 vo februári 1997. Špecifikuje, že súbory cookie tretích strán buď nemajú byť vôbec povolené, alebo aspoň nie štandardne povolené. V tom čase už reklamné spoločnosti používali súbory cookie tretích strán a Netscape a ani Internet Explorer nerešpektovali odporúčanie týkajúce sa súborov cookie tretích strán z RFC 2109. RFC 2109 bol nahradený RFC 2965 v októbri 2000.
Účel cookies Cookies môžu byť použité na zaznamenávanie voľby, ktorú urobil užívateľ ako napríklad položky pridané v nákupnom košíku v internetovom obchode (e-shop) alebo môžu zaznamenávať aktivitu používateľa počas prehliadania napríklad kliknutia na tlačidlá, prihlásenie alebo zaznamenávanie stránok, ktoré už navštívil. Môžu sa tiež použiť na zapamätanie si ľubovoľných informácií, ktoré používateľ predtým zadal do formulárov ako sú mená, adresy, heslá alebo čísla kreditných kariet.
Iné druhy cookies zabezpečujú niektoré základné funkcie súčasných webov. Najdôležitejšie sú autentifikačné (authentication) cookies, ktoré používajú servery na to, aby zistili, či je používateľ prihlásený alebo nie (a s ktorým účtom, ak ich má viacej). Bez takéhoto mechanizmu by stránka nevedela, či zobraziť na stránke citlivé informácie alebo nie a či požiadať používateľa o autentifikáciu prihlásením (login) alebo nie. Moderné weby však neukladajú meno používateľa a heslo do cookie ale využívajú iné metódy napríklad HTTP authentication. Tieto údaje aj keď sa uložia v počítači (napríklad pri voľbe zapamätať heslo), sú zvyčajne chránené ešte ďalším prístupovým mechanizmom. Heslá v internetových bankách nie sú nikdy ukladané do cookies.
Rozdelenia cookies podľa účelu Java delí cookies na 3 kategórie a Google na 6 kategórií. Názvy kategórii v nasledovnom zodpovedajú Jave a názvy Google sú v zátvorke šikmým písmom:
Základné cookies (Predvoľby a Zabezpečenie)
požadované alebo nevyhnutné pre stránky s prihlasovaním a transakciami Zapamätanie prihlasovacích údajov a zjednodušenie prihlasovania Zapamätanie stavu prebiehajúcej úlohy alebo postupu transakcii
Funkčné cookies (Procesy a Analytics)
Analýza využívania sídla za účelom poskytovanie prispôsobeného (personalizovaného) obsahu Analýza s cieľom optimalizovať funkčnosť Uložiť obsah nákupného košíka/vozíka Umožniť tretím stranám zdieľanie na sociálnych sieťach Zabezpečiť aby sa webová stránka zobrazovala konzistentne
Reklamné cookies (Inzercia a Stav inzercie)
Poskytovať ponuky alebo reklamy založené na záujmoch Umožniť tretím stranám, aby poskytovali reklamy založené na záujmoch aj na iných stránkach ako tohto poskytovateľa Umožniť zdieľať stránky so sociálnymi sieťami Umožniť posielať komentáre
Technické podrobnosti Hoci väčšina prehliadačov cookies podporuje, iné jednoduchšie prehliadače (napr. na mobilných zariadeniach) ich podporovať nemusia; navyše cookies možno vo väčšine prehliadačov zakázať. Ak prehliadač cookies podporuje, mal by spĺňať tieto minimálne limity: Podpora aspoň 300 cookies Aspoň 4 KiB na dáta jednej cookie Aspoň 20 cookies na doménu Ak niektoré prehliadače nemôžu prijať väčší cookie, nesmú "orezať" jeho obsah, ale ho vôbec neprijať
Cookies obsahujú textové informácie. Na strane klienta (užívateľa) sa môžu ukladať na rôzne miesta. Napríklad pre Internet Explorer vo Windows XP sa ukladali ako textové súbory do adresára c:\Documents and Settings\Meno používateľa\Cookies. V novšom prehliadači Google Chrome sa v systéme Windows 7 a 10 ukladajú cookies ako zašifrované záznamy (riadky) do SQL databázy a sú v súbore C:\Users\<current_user>\AppData\Local\Google\Chrome\User Data\<Profile 1>\Cookies. Cookies sa teda dajú prezrieť alebo odstrániť len v nastaveniach prehliadača.
Funkcia cookies je definovaná v RFC 2965 pomocou HTTP hlavičiek Set-Cookie (alebo jej novšieho variantu Set-Cookie2) a Cookie. Hlavička Set-Cookie je poslaná v odpovedi servera a obsahuje: Názov (identifikátor) cookie Dáta cookie (obmedzené prehliadačom, vyžadovaná je podpora aspoň pre 4 096 bajtov), Dobu platnosti cookie (resp. čas, kedy doba vyprší), Doména, pre ktorú cookie platí, Adresár na serveri, pre ktorý cookie platí. Ak má prehliadač aspoň jednu cookie pre daný server (a daný adresár na ňom), posiela s každým dotazom danému serveru aj hlavičku Cookie, ktorá obsahuje rovnaké dáta, ktorá server pôvodne poslal.
V prehliadačoch s podporou JavaScriptu možno v tomto jazyku ku cookie pristupovať cez vlastnosť document.cookie vo forme: názov_1._cookie = hodnota_1._cookie; názov_2._cookie = hodnota_2._cookie; .... Páry názov: hodnota sú oddelené bodkočiarkou, ak má hodnota obsahovať bodkočiarku, je obalená úvodzovkami.
Cookie možno nastavovať taktiež na strane servera (podľa možností skriptovacieho jazyka) – nastavenie hodnoty cookie predstavuje v podstate pridanie HTTP hlavičky do odpovede serveru (z toho dôvodu musí nastavenie prebehnúť pred vypísaním čohokoľvek na výstup). Napríklad, pre jazyk PHP k tomu slúži funkcia setcookie so syntaxou:
Bool setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])
Bezpečnosť a ochrana súkromia Cookies neznamenajú žiadne nebezpečenstvo pre počítač, pretože sú v textovom alebo podobnom súbore, ktorý nemôže byť spustený a prevziať kontrolu nad počítačom. Napriek tomu cookies môžu byť nebezpečné z pohľadu ochranu súkromia. Navštívený web si totiž môže ukladať do cookies akékoľvek informácie, ktoré o návštevníkovi zistí a môže tak postupne zisťovať záujmy konkrétneho návštevníka: ktoré stránky navštevuje, aké informácie vyhľadáva, ako často daný web navštevuje, na ktorý iný web odchádza a pod.
Týchto informácií sa dá neskôr aj bez vedomia návštevníka využívať pre cielenú reklamu (eufemisticky nazývanú ako reklama založená na záujmoch), štatistické vyhodnocovanie správania návštevníkov, a pod. Tieto informácie však môže server získavať aj bez cookies, preto toto ich využitie nemôže byť považované za obzvlášť nebezpečné.
Ak viacero webových sídiel využíva rovnakú technológiou cookies a zasiela ich tretej strane, môže potom táto tretia strana pomocou cookies identifikovať a sledovať užívateľa aj pri prechádzaní z jednej domény na druhú. Takýmto nástrojom na identifikáciu návštevníkov je napríklad Google Analytics.
Cookies možno zneužiť najmä vtedy, ak získa útočník prístup k počítaču používateľa, pretože cookies na počítači nie sú nijako chránené. Potom útočník môže s cookies "ukradnúť" identitu napadnutého.
Aj bez fyzického prístupu k počítaču existuje niekoľko podvodných spôsobov ako ukradnúť cookies (angl. cookie theft) alebo ukradnúť/uniesť aktuálnu návštevu (angl. session hijacking), ktoré sú možné, obzvlášť ak je pripojenie cez nezabezpečenú wifi sieť, ak je webový prehliadač zle nastavený alebo nechránený.
Právne neriadenia