cookie e sessioni

This commit is contained in:
dado
2025-06-07 21:17:24 +02:00
parent 4ebff92bad
commit 745c9fb219

View File

@ -89,6 +89,24 @@ I metodi HTTP indicano al server l'azione da eseguire su una risorsa. I principa
- `DELETE`: consente di eliminare una risorsa sul server. Anche questo metodo, per ragioni di sicurezza, è spesso disabilitato di default - `DELETE`: consente di eliminare una risorsa sul server. Anche questo metodo, per ragioni di sicurezza, è spesso disabilitato di default
- `OPTIONS`: utilizzato per verificare quali metodi HTTP sono supportati dal server, consentendo così al client di conoscere le possibili azioni disponibili - `OPTIONS`: utilizzato per verificare quali metodi HTTP sono supportati dal server, consentendo così al client di conoscere le possibili azioni disponibili
## Cookie e sessioni
Il protocollo HTTP è progettato per il trasferimento di pagine web attraverso richieste e risposte. Tuttavia, il protocollo HTTP è intrinsecamente `stateless`, ovvero privo di memoria. Ciò significa che non può memorizzare le preferenze o lo stato di un utente tra una richiesta e l'altra.
Per ovviare a questa limitazione, sono stati introdotti i cookie e le sessioni, che rendono HTTP `stateful`, un meccanismo con memoria che può tenere traccia dell'utente.
I `cookie` sono piccoli file di testo che il server invia al browser dell'utente, che li memorizza. Quando l'utente effettua una nuova richiesta, il browser invia nuovamente i cookie al server, permettendogli di riconoscere l'utente e mantenere le sue preferenze.
Le caratteristiche principali dei cookie sono:
- *Persistenza*: possono essere di sessione (temporanei, eliminati alla chiusura del browser) o persistenti (con una data di scadenza e memorizzati sul disco)
- *Sicurezza*: possono essere marcati come `secure`, obbligando lo scambio solo tramite HTTPS, e `HttpOnly`, impedendo a di accedere al valore del cookie tramite JavaScript (i cookie permettono di bypassare tutti i meccanismi di autenticazione)
- *Scope*: definiscono il percorso (path) e il dominio (domain) per cui il cookie è valido
Hanno una dimensione limitata a 4 KB e possono essere bloccati dal browser o dai suoi plugin per motivi di privacy.
Le `sessioni`, invece, sono gestite lato server e identificano il client attraverso un ID di sessione. Spesso, i cookie vengono utilizzati per memorizzare solo l'ID di sessione, mentre i dati dell'utente sono conservati sul server.
## URI, URL e URN ## URI, URL e URN
Un `URI` (*Uniform Resource Identifier*) è un meccanismo per identificare in modo univoco una risorsa generica. Esistono due specializzazioni principali: Un `URI` (*Uniform Resource Identifier*) è un meccanismo per identificare in modo univoco una risorsa generica. Esistono due specializzazioni principali: