cookie e sessioni
This commit is contained in:
@ -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
|
||||
- `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
|
||||
|
||||
Un `URI` (*Uniform Resource Identifier*) è un meccanismo per identificare in modo univoco una risorsa generica. Esistono due specializzazioni principali:
|
||||
|
Reference in New Issue
Block a user