Чому популярні веб-сайти зберігають дуже складні дані, пов’язані з сеансом, у файлах cookie - і що це все означає?


19

Як веб-розробники, ми всі дізнаємося, що сеанси допомагають подолати проблеми, пов’язані з природою HTTP без громадянства. Ми створюємо унікальний ідентифікатор сесії і надсилаємо його до браузера - і коли браузер надсилає нам той самий ідентифікатор, ми легко ідентифікуємо користувача.

Все це звучить досить просто, і НЕ так складно реалізувати будь-якою мовою.

ЗАРАЗ

Подивіться на наступні знімки екрана, які я зробив. Вони показують види файлів cookie, які популярні веб-сайти. Схоже, вони зберігають кілька ідентифікаторів сеансу, або вони намагаються приховати фактичний ідентифікатор, встановивши так багато файлів cookie, або це щось дуже спеціалізоване заходи безпеки, які вони вживають, щоб запобігти викрадення сеансу та інші пов'язані з цим проблеми. Або, що завгодно.

Gmail (перед входом)

введіть тут опис зображення

Gmail (після входу)

введіть тут опис зображення

Facebook

введіть тут опис зображення

StackExchange

введіть тут опис зображення

(Не хвилюйтесь, ви не можете вкрасти мій сеанс - він застарілий і неповний :))

Отже, моє запитання - якою метою служить ця складність? Поясніть, будь ласка, що означають ці різні файли cookie (загалом) та для яких цілей вони встановлені. Нарешті, підкажіть, як я можу це зробити (і чи слід) у своїх власних програмах.

Ще одне питання: у багатьох випадках значення файлів cookie виглядають так, як вони кодовані URL-адресою - чому так?

Відповіді:


21
  1. Іноді зберігати певні дані в сесійній таблиці в базі даних не представляється практично. Якщо певні дані сильно оновлюються, то це може також сильно забруднити базу даних. Якщо це так, і дані не надто важливі, можливо, краще зберігатись в окремому файлі cookie.

  2. Якщо (1) трапляється, вам доведеться мати обмеження 4kb на печиво, тому зберігання всіх даних сеансу cookie в одному файлі cookie є поганою ідеєю.

  3. Було б непогано мати можливість зберігати все в мінімальній кількості необхідних файлів cookie, але складність проекту ускладнює це. Деякі програми розробляються декількома командами . Іноді те, що ви бачите як один веб-сервер, насправді є проксі-сервером, який спілкується з кількома різними кластерами веб-серверів, перенаправляючи різні розділи сайту на різні кластери, кожен із власним набором файлів cookie.

  4. Печиво дешеве. Ви виняток із правила - ніхто не заглядає у свій магазин cookie, щоб побачити, скільки у них файлів cookie. І користь від комбінації всіх даних сеансів на стороні клієнта є невеликою кількістю корисних файлів.


Я також виняток із правила.
Майкл Слейд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.