Warum speichern beliebte Websites sehr komplizierte sitzungsbezogene Daten in Cookies - und was bedeutet das alles?

19

Als Webentwickler wissen wir alle, dass Sitzungen dazu beitragen, die Probleme zu überwinden, die mit der statusfreien Natur von HTTP zusammenhängen. Wir erstellen eine eindeutige Sitzungs-ID und senden sie an den Browser. Wenn der Browser dieselbe ID an uns zurücksendet, können wir den Benutzer leicht identifizieren.

All dies klingt ziemlich einfach und ist in keiner Sprache so kompliziert zu implementieren.

JETZT

Schauen Sie sich die folgenden Screenshots an, die ich gemacht habe. Diese zeigen die Arten von Cookies, die beliebte Websites speichern. Anscheinend speichern sie mehrere Sitzungs-IDs oder versuchen, die tatsächliche ID durch das Setzen so vieler Cookies zu verbergen, oder es handelt sich um sehr spezielle Sicherheitsmaßnahmen, die sie ergreifen, um Sitzungsentführungen und andere damit verbundene Probleme zu verhindern. Oder Wasauchimmer.

Google Mail (vor dem Login)

Bildbeschreibung hier eingeben

Google Mail (nach dem Login)

Bildbeschreibung hier eingeben

Facebook

Bildbeschreibung hier eingeben

StackExchange

Bildbeschreibung hier eingeben

(Keine Sorge, du kannst meine Sitzung nicht stehlen - sie ist veraltet und unvollständig :))

Meine Frage lautet also: Welchem ​​Zweck dient diese Kompliziertheit? Bitte erläutern Sie, was diese verschiedenen Cookies (im Allgemeinen) bedeuten und für welche Zwecke diese gesetzt werden. Zuletzt einen Hinweis, wie ich es in meinen eigenen Apps machen kann (und ob ich sollte).

Noch eine Frage: In vielen Fällen sehen die Werte in den Cookies so aus, als wären sie URL-codiert - warum?

Baumkodierer
quelle

Antworten:

21
  1. Manchmal ist es nicht praktisch, bestimmte Daten in einer Sitzungstabelle in der Datenbank zu speichern. Wenn bestimmte Daten ein aktualisiert wird viel dann könnte es die Datenbank eine Menge als auch versinken. Wenn dies der Fall ist und die Daten nicht zu wichtig sind, sollten Sie sie in einem separaten Cookie speichern.

  2. Wenn (1) passiert, müssen Sie sich mit dem Limit von 4 KB pro Cookie auseinandersetzen. Daher ist es eine schlechte Idee, alle Sitzungsdaten in einem Cookie zu speichern.

  3. Es wäre schön, alles in der erforderlichen Mindestanzahl an Cookies speichern zu können, aber die Komplexität des Projekts erschwert dies. Einige Anwendungen werden von mehreren Teams entwickelt . Manchmal , was Sie sehen , wie ein Web - Server ist eigentlich ein Proxy , dass die Gespräche auf verschiedene Cluster von Web - Servern, Routing verschiedene Abschnitte der Website zu verschiedenen Clustern, die jeweils mit ihrem eigenen Satz von Cookies.

  4. Kekse sind billig. Sie sind die Ausnahme von der Regel - niemand sieht in seinem Cookie-Shop nach, wie viele Cookies er hat. Der Versuch, alle clientseitigen Sitzungsdaten in so wenigen Cookies wie möglich zu kombinieren, hat nur einen geringen Leistungsvorteil .

Michael Slade
quelle
Ich bin auch die Ausnahme von der Regel.
Michael Slade