Un cookie HTTP sau un modul cookie este un text special, deseori codificat, trimis de un server unui navigator web și apoi trimis înapoi (nemodificat) de către navigator, de fiecare dată când accesează acel server. Cookie-urile sunt folosite pentru autentificare precum și pentru urmărirea comportamentului utilizatorilor; aplicații tipice sunt reținerea preferințelor utilizatorilor și implementarea sistemului de „coș de cumpărături”.

Termenul „cookie” este un cuvânt englez (biscuit, pronunție: /ˈkuˌki/). În informatică el este derivat din termenul „magic cookie”, un concept des utilizat în IT. În general cuvântul „cookie” cu acest sens este folosit și în alte limbi; doar în terminologia tehnică francofonă s-a încercat traducerea lui prin termenul témoin („martor”).

Cookie-urile au creat îngrijorare din cauză că ele permit strângerea de informații despre comportamentul utilizatorilor (în principiu, ce anume pagini web vizitează și când). Ca urmare, folosirea lor (și a informațiilor culese) sunt supuse în unele țări unor restricții legale, printre care Statele Unite ale Americii și țările UE. Tehnicile de tip „cookie” au fost de asemenea criticate pentru faptul că identificarea utilizatorilor nu e întotdeauna precisă, ca și pentru faptul că prin intermediul lor se pot executa atacuri informatice.

Există și o serie de păreri greșite despre cookie-uri, cele mai multe bazate pe impresia (greșită) că ele ar conține întotdeauna cod executabil; în realitate ele sunt doar texte, și nu pot să execute nicio operație. Ele nu sunt nici spyware și nici viruși informatici, deși anumite programe antivirus și anti-spyware le pot detecta.

Cele mai multe navigatoare moderne permit utilizatorului să decidă dacă acceptă sau nu cookie-uri. Siturilor care le refuză le vor lipsi însă anumite facilități - de exemplu, într-un magazin virtual nu se va mai putea folosi coșul de cumpărături, dacă acesta a fost implementat cu ajutorul cookie-urilor.

Scopul

Cookie-urile sunt folosite de serverele web pentru a putea diferenția utilizatorii și pentru a putea reacționa în funcție de acțiunile acestora în cadrul unei sesiuni formate din mai multe tranzacții separate. Ele au fost inventate pentru a se putea implementa un coș de cumpărături virtual: de obicei, utilizatorul mai întâi se autentifică (login), apoi navighează pe site, adaugă sau elimină în voie obiecte din coș, apoi afișează conținutul coșului, cere calcularea prețului final, se hotărăște să comande (ori totuși renunță), iar la sfârșit închide sesiunea (logout).

Autentificarea utilizatorilor față de server este o altă aplicație a cookie-urilor; cu ajutorul acestora serverul reține faptul că utilizatorul s-a autentificat, și îi va permite acțiuni specifice celor autentificați.

Unele site-uri folosesc cookie-urile și pentru a permite utilizatorilor să modifice felul în care afișează paginile de web, în funcție de preferințele personale, care sunt reținute și între sesiuni. Se pot modifica și reține în acest fel atât aspecte legate de funcționalitatea cât și de afișarea grafică a paginilor. De exemplu, Wikipedia permite utilizatorilor înregistrați să modifice aspectul paginilor, iar în Google, chiar și utilizatorii neînregistrați pot de exemplu alege câte rezultate să fie afișate într-o pagină.

Cookie-urile se folosesc și pentru a urmări activitatea unui utilizator pe un site, sau chiar pe mai multe site-uri, în cazul cookie-urilor „third party” sau a așa-numiților „web bugs”. Urmărirea în cadrul unui site este făcută în scopul obținerii unor statistici de folosire. În special companiile de publicitate urmăresc activitatea utilizatorilor în cadrul mai multor situri pentru a afla mai exact interesele lor, putând astfel să decidă care anume reclame să trimită la un anumit moment unui anumit utilizator.

Realizarea

Cookie-urile de obicei conțin date fără semnificație pentru utilizator sau pentru navigatorul său, dar care pot fi interpretate de server. Navigatorul le primește și le returnează serverului nemodificate, introducând astfel o „amintire” a evenimentelor trecute în cererea HTTP, care în sine este atemporală (altfel spus, fiecare cerere este în principiu un eveniment izolat, fără a avea vreo legătură cu alte cereri HTTP trecute sau viitoare către același server). Returnând însă un cookie unui server, acesta poate lega cererea actuală de cereri precedente (în care același server a trimis cookie-ul), în acest fel luând naștere o așa numită sesiune. În afară de servere, cookie-urile mai pot fi create și de aplicații web care rulează pe server, comunică cu clienții prin HTTP, și sunt scrise în limbaje de programare cum ar fi Java și C# sau în scripturi ce rulează pe server.

Descrierea detaliată a mecanismului[1][2] sugerează ca navigatoarele să poată reține cel puțin 300 de cookie-uri de câte 4 kb, și cel puțin 20 pentru fiecare server sau domeniu de Internet.

La crearea cookie-ului se poate specifica și data de ștergere; în caz contrar, acesta va fi șters la închiderea navigatorului. Un magazin virtual poate dori să se rețină conținutul coșului de cumpărături între sesiuni, astfel încât la următoarea vizită utilizatorul să nu trebuiască să caute din nou toate produsele. În acest caz, serverul magazinului va crea un cookie cu un termen de ștergere ceva mai lung. Doar cookie-urile care au un termen de ștergere lung, specificat explicit, vor „supraviețui” între sesiuni, în care caz ele pot fi numite „persistente”.