Dlaczego popularne witryny przechowują w plikach cookie bardzo skomplikowane dane dotyczące sesji - i co to wszystko znaczy?

19

Jako programiści stron internetowych wszyscy dowiadujemy się, że sesje pomagają przezwyciężyć problemy związane z bezstanowym charakterem HTTP. Tworzymy unikalny identyfikator sesji i wysyłamy go do przeglądarki - a kiedy przeglądarka odsyła do nas ten sam identyfikator, łatwo identyfikujemy użytkownika.

Wszystko to brzmi dość prosto i NIE jest tak skomplikowane do wdrożenia w dowolnym języku.

TERAZ

Spójrz na następujące zrzuty ekranu, które zrobiłem. Pokazują one rodzaje plików cookie popularnych witryn internetowych. Wygląda na to, że przechowują wiele identyfikatorów sesji lub próbują ukryć rzeczywisty identyfikator, ustawiając tak wiele plików cookie, lub jest to coś bardzo wyspecjalizowanego środka bezpieczeństwa, który podejmuje, aby zapobiec przejmowaniu sesji i innym powiązanym problemom. Lub cokolwiek.

Gmail (przed zalogowaniem)

wprowadź opis zdjęcia tutaj

Gmail (po zalogowaniu)

wprowadź opis zdjęcia tutaj

Facebook

wprowadź opis zdjęcia tutaj

StackExchange

wprowadź opis zdjęcia tutaj

(Nie martw się, nie możesz ukraść mojej sesji - jest nieaktualna i niekompletna :))

Moje pytanie brzmi: do czego służy ta komplikacja? Wyjaśnij, co oznaczają te różne pliki cookie (ogólnie) i do jakich celów są one ustawione. Na koniec podpowiedź, jak to zrobić (i czy powinienem) we własnych aplikacjach.

Jeszcze jedno pytanie: w wielu przypadkach wartości w ciasteczkach wyglądają, jakby były zakodowane w adresie URL - dlaczego?

treecoder
źródło

Odpowiedzi:

21
  1. Czasami nie jest praktyczne przechowywanie niektórych danych w tabeli sesji w bazie danych. Jeśli pewne dane zostaną zaktualizowane do dużo to może zapełniać się baza danych, wiele również. Jeśli tak jest, a dane nie są zbyt ważne, może być lepiej przechowywane w osobnym pliku cookie.

  2. Kiedy zdarza się (1), musisz zmierzyć się z limitem 4kb na plik cookie, więc przechowywanie wszystkich danych sesji w pliku cookie w jednym pliku cookie jest złym pomysłem.

  3. Byłoby miło móc przechowywać wszystko w minimalnej wymaganej liczbie plików cookie, ale problemy ze złożonością projektu utrudniają to. Niektóre aplikacje są opracowywane przez kilka zespołów . Czasami to, co widzisz jako jeden serwer WWW, to tak naprawdę serwer proxy, który komunikuje się z kilkoma różnymi klastrami serwerów internetowych, kierując różne sekcje witryny do różnych klastrów, każdy z własnym zestawem plików cookie.

  4. Ciasteczka są tanie. Jesteś wyjątkiem od reguły - nikt nie patrzy w ich sklepie z ciasteczkami, aby zobaczyć, ile ma plików cookie. Poza tym próba połączenia wszystkich danych sesji po stronie klienta w jak najmniejszej liczbie plików cookie jest niewielka.

Michael Slade
źródło
Jestem także wyjątkiem od reguły.
Michael Slade