Perché i siti Web più famosi archiviano nei cookie dati relativi alle sessioni molto complicati - e cosa significa tutto questo?

19

Come sviluppatori web, impariamo tutti che le sessioni aiutano a superare i problemi relativi alla natura senza stato di HTTP. Creiamo un ID di sessione unico e lo inviamo al browser - e quando il browser ci restituisce lo stesso ID, identifichiamo facilmente l'utente.

Tutto ciò sembra abbastanza semplice e NON così complicato da implementare in qualsiasi lingua.

ora

Guarda le seguenti schermate che ho scattato. Questi mostrano i tipi di cookie popolari siti web store. Sembra che stiano memorizzando più ID di sessione, oppure stanno cercando di nascondere l'ID effettivo impostando così tanti cookie, oppure, sono misure di sicurezza molto specializzate che stanno adottando per prevenire il dirottamento di sessione e altri problemi correlati. O, qualunque cosa.

Gmail (prima del login)

Gmail(dopoillogin)

Facebook

StackExchange

(Non ti preoccupare, non puoi rubare la mia sessione - è stantio e incompleto:))

Quindi, la mia domanda è: quale scopo serve questa complicità? Spiega cosa significano questi diversi cookie (in generale) e per quali scopi questi sono impostati. Infine, suggerimento su come posso farlo (e se dovrei) nelle mie app.

Un'altra domanda: in molti casi, i valori nei cookie sembrano codificati tramite URL: perché?

    
posta treecoder 01.05.2012 - 10:17
fonte

1 risposta

21
  1. A volte non è pratico memorizzare certi dati in una tabella di sessione sul database. Se alcuni dati vengono aggiornati un lotto , potrebbe anche impantanare molto il database. Se questo è il caso e i dati non sono troppo importanti, potrebbe essere meglio memorizzato in un cookie separato.

  2. Quando (1) accade devi gestire il limite di 4kb per cookie, quindi memorizzare tutti i dati della sessione in-cookie in un cookie è una cattiva idea.

  3. Sarebbe bello poter archiviare tutto nel numero minimo di cookie richiesti, ma i problemi di complessità del progetto rendono difficile. Alcune applicazioni sono sviluppate da diversi team . A volte quello che vedi come un server web è in realtà un proxy che parla con diversi cluster di server Web, indirizzando diverse sezioni del sito a diversi cluster, ognuno con il proprio set dei cookie.

  4. I cookie sono economici. Sei l'eccezione alla regola: nessuno guarda nel loro negozio di cookie per vedere quanti cookie hanno. E c'è un piccolo vantaggio in termini di prestazioni nel cercare di combinare tutti dei dati della sessione lato client nel minor numero possibile di cookie.

risposta data 01.05.2012 - 10:27
fonte

Leggi altre domande sui tag