Gli HTTP's cookie (pron. ; più precisamente denominati cookie web o per antonomasia cookie) Cookie generalmente significa "biscottino" in inglese, in particolare è un biscotto al burro con gocce di cioccolato tipico della cultura statunitense, ma il termine viene usato in questo caso per riferirsi ai biscottini per animali domestici, e più in generale col significato di "piccolo premio". sono un tipo particolare di magic cookie (una sorta di gettone identificativo) e vengono utilizzati dalle applicazioni web lato server per archiviare e recuperare informazioni a lungo termine sul lato client.

Storia Il concetto e il termine cookie, che letteralmente significa "biscotto", derivano dal magic cookie (biscotto magico) una tecnica nota in ambiente UNIX già negli anni '80 e tipicamente utilizzata per implementare meccanismi di identificazione di un client presso un server, come ad esempio l'autenticazione del server X Window System.

Il primo uso di cookie in HTTP risale al 1994, quando furono usati per controllare se i lettori del sito di Netscape lo avessero già visitato in precedenza. Nel 1995 la gestione dei cookie è stata integrata in Internet Explorer 2. L'introduzione dei cookie inizialmente non è stata conosciuta da un ampio pubblico, ma se ne iniziò a parlare dopo un articolo pubblicato sul Financial Times il 12 febbraio 1996. Il dibattito che si scatenò aveva come tema le implicazioni dei cookie sulla segretezza. I cookie furono oggetto di due udienze della Commissione degli Stati Uniti in commercio federale nel 1996 e nel 1997. Da queste date si incominciò a regolare gli utilizzi dei cookie.

Oggi le applicazioni più comuni riguardano la memorizzazione di informazioni sulle abitudini dell'utente stesso all'interno dei siti web che visita. Tali applicazioni hanno spesso sollevato dubbi da parte dei difensori della privacy dei navigatori, infatti un cookie potrebbe aiutarci nella navigazione oppure spiarci. In questo secondo caso rientrano molte catene di pubblicitari (che vendono pubblicità a molti siti differenti) i quali usano un cookie accluso all'immagine pubblicitaria per correlare le visite di uno stesso utente a più siti diversi, costruendo quindi una specie di profilo dei siti più graditi. Altri usi considerati convenienti perché utilizzano il cookie come servizio per l'utente sono per esempio la registrazione dei dati di una sessione per evitare la necessità di una nuova autenticazione in una visita successiva (come fa anche Wikipedia per i suoi utenti registrati), o per mantenere il contenuto del "carrello della spesa" nei siti di commercio elettronico.

Descrizione Generalità I server inviano i cookie nella risposta HTTP al client e ci si aspetta che i web browser salvino e inviino i cookie al server, ogni qual volta si facciano richieste aggiuntive al web server.

Tale riconoscimento permette di realizzare meccanismi di autenticazione usati ad esempio per i login; di memorizzare dati utili alla sessione di navigazione, come le preferenze sull'aspetto grafico o linguistico del sito; di tracciare la navigazione dell'utente, ad esempio per fini statistici o pubblicitari; di associare dati memorizzati dal server, ad esempio il contenuto del carrello di un negozio elettronico.

Date le implicazioni per la riservatezza dei naviganti del web, l'uso dei cookie è categorizzato e disciplinato negli ordinamenti giuridici di numerosi paesi, tra cui quelli europei, inclusa l'Italia. La sicurezza di un cookie di autenticazione dipende generalmente dalla sicurezza del sito che lo emette, dal browser web dell'utente, e dipende dal fatto che il cookie sia criptato o meno. Le vulnerabilità di sicurezza possono permettere agli hacker di leggere i dati del cookie, che potrebbe essere usato per ottenere l'accesso ai dati degli utenti, o per ottenere l'accesso (con le credenziali dell'utente) al sito web a cui il cookie appartiene (vedi cross-site scripting e cross-site request forgery per esempio).

I cookie, e in particolare i cookie di terza parte, sono comunemente usati per memorizzare le ricerche di navigazione degli utenti; questi dati sensibili possono essere una potenziale minaccia alla privacy degli utenti; proprio questo ha indotto le autorità europee e degli Stati Uniti a regolamentarne l'uso mediante una legge nel 2011. Infatti la legislazione europea impone a tutti i siti degli stati membri di informare gli utenti che il sito usa certi tipi di cookie.

Caratteristiche In termini pratici e non specialistici, un cookie è simile ad un piccolo file, memorizzato nel computer da siti web durante la navigazione, utile a salvare le preferenze e a migliorare le prestazioni dei siti web. In questo modo si ottimizza l'esperienza di navigazione da parte dell'utente.

Nel dettaglio, un cookie è una stringa di testo di piccole dimensioni inviata da un web server ad un web client (di solito un browser) e poi rimandata indietro dal client al server (senza subire modifiche) ogni volta che il client accede alla stessa porzione dello stesso dominio web. I cookie sono stati originariamente introdotti per fornire un modo agli utenti di memorizzare gli oggetti che volevano acquistare, mentre navigavano nel sito web (il cosiddetto "carrello della spesa").

Oggi, tuttavia, il contenuto del carrello di un utente viene immagazzinato in un database sul server, piuttosto che in un cookie sul client. Per tenere traccia a quale utente è assegnato il carrello della spesa, il server Web invia un cookie al client che contiene un identificatore di sessione univoco (tipicamente, una lunga serie di lettere e numeri). Poiché i cookie vengono inviati al server ad ogni richiesta del client, l'identificatore di sessione sarà inviato al server ogni volta che l'utente visita una pagina sul sito web, ciò permette al server di sapere quale carrello deve fornire all'utente.

Poiché i cookie di sessione contengono solo un identificatore di sessione univoco, questo rende la quantità di informazioni personali che un sito web può memorizzare virtualmente illimitata. Il sito non si limita alle restrizioni in materia di quanto possa essere lunga la stringa di testo che compone un cookie. I cookie di sessione possono anche contribuire a migliorare i tempi di caricamento delle pagine, dal momento che la quantità di informazioni in un cookie di sessione è piccolo e richiede poca banda.

Il cookie principale, quello che serve per memorizzare le opzioni per tutti gli altri cookie, si chiama cookie tecnico (di consenso) ovvero quello che presiede all'invio e ricezione del pacchetto di informazioni (marcatori).

Ogni dominio o sua porzione che viene visitata col browser può impostare dei cookie. Poiché una tipica pagina Internet, ad esempio quella di un giornale in rete, contiene oggetti che provengono da molti domini diversi e ognuno di essi può impostare cookie, è normale ospitare nel proprio browser molte centinaia di cookie.

I cookie vengono spesso erroneamente ritenuti veri e propri programmi e ciò genera errate convinzioni. In realtà essi sono semplici blocchi di dati, incapaci, da soli, di compiere qualsiasi azione sul computer. In particolare non possono essere né spyware, né virus. Ciononostante i cookie provenienti da alcuni siti sono catalogati come spyware da molti prodotti anti-spyware perché rendono possibile l'individuazione dell'utente. I moderni browser permettono agli utenti di decidere se accettare o no i cookie, ma l'eventuale rifiuto rende alcuni oggetti inutilizzabili. Ad esempio, gli shopping cart implementati con i cookie non funzionano in caso di rifiuto.

I cookie non sono solo utilizzati sui PC o simili, ma anche sugli smartphone, sui tablet e sugli smart TV.

Funzionamento Un cookie è un header aggiuntivo presente in una richiesta (Cookie:) o in una risposta (Set-Cookie:) del HTTP. Quando un server desidera assegnare un cookie a un utente, lo inserisce negli header della risposta. Il client rileva la presenza del cookie e lo memorizza in un'area dedicata, di solito una directory dove ogni cookie viene salvato in un separato.

Un cookie è composto da una stringa di testo arbitraria, una data di scadenza (dopo la quale non è più valido) e un pattern che definisce i domini a cui deve essere restituito. È possibile impostare più cookie all'interno di una singola risposta HTTP.

Il browser web del client rimanda il cookie, senza modificarlo, a tutte le richieste HTTP che corrispondono al pattern e entro la data di scadenza. Il server può decidere di aggiornare il cookie esistente, sovrascrivendolo. Grazie al pattern, è possibile far sì che tutti i sottodomini di un dominio ricevano lo stesso cookie, se necessario.

I cookie consentono di introdurre uno stato in un protocollo che altrimenti è privo di stato. Senza cookie, non ci sarebbe alcuna differenza tra una pagina caricata prima o dopo un login. Poiché i cookie possono rimanere nel sistema per lunghi periodi, i siti web possono assegnare un identificatore univoco all'utente e tracciare la sua navigazione all'interno del sito, ad esempio per generare statistiche.

Possono essere utilizzati anche per monitorare la navigazione su siti terzi, quando questi ultimi incorporano contenuti provenienti dal sito che ha impostato il cookie. Ad esempio, la pubblicità online è spesso gestita da società che operano su più siti. Il contenuto pubblicitario viene caricato direttamente dai loro server tramite richieste HTTP e visualizzato come parte integrante del sito visitato dall'utente. In questo modo, il server della compagnia pubblicitaria riceve informazioni sulla pagina visualizzata e può inviare un cookie al browser. Tramite questi meccanismi, le società pubblicitarie possono aggregare dati sugli utenti e creare profili per mostrare pubblicità mirata.

Utilizzo Poiché possono essere usati per monitorare la navigazione su Internet, i cookie sono oggetto di discussioni concernenti il diritto alla privacy. Molti paesi ed organizzazioni, fra cui gli Stati Uniti e l'Unione europea, hanno legiferato in merito. I cookie sono stati inoltre criticati perché non sempre sono in grado di identificare l'utente in modo accurato ed inoltre perché possono potenzialmente essere oggetto di attacchi informatici. Esistono alcune alternative ai cookie, ma tutte, insieme ad alcuni vantaggi, presentano controindicazioni.

Nella cookie policy i gestori di un sito web devono specificare nel dettaglio la politica dei propri cookie o di quelli di terze parti.

Le attività per le quali sono utilizzate sono di autenticazione, tracciatura di sessioni e memorizzazione di informazioni specifiche riguardanti gli utenti che accedono al server, come ad esempio siti web preferiti o, in caso di acquisti via internet, il contenuto dei loro "carrelli della spesa".

Anche il motore di ricerca Google spedisce un cookie che immagazzina dati riguardanti le ricerche, le parole chiave delle ricerche e le abitudini dell'utente.

Più in dettaglio i diversi utilizzi dei cookie sono dunque:

Per riempire il carrello della spesa virtuale in siti commerciali (i cookie ci permettono di mettere o togliere gli articoli dal carrello in qualsiasi momento). Per permettere ad un utente il login in un sito web. Per personalizzare la pagina web sulla base delle preferenze dell'utente (per esempio il motore di ricerca Google permette all'utente di decidere quanti risultati della ricerca voglia visualizzare per pagina). Per tracciare i percorsi dell'utente (tipicamente usato dalle compagnie pubblicitarie per ottenere informazioni sul navigatore, i suoi gusti le sue preferenze. Questi dati vengono usati per tracciare un profilo del visitatore in modo da presentare solo i banner pubblicitari che gli potrebbero interessare).