Різниця між cookies і сесіями - stack overflow російською

Будь ласка, поясніть мені простими словами, а не завченими термінами, як і з чим працювати? Що і для чого треба? Можна з прикладами в яких буде пояснення, спасибі.

заданий 16 Березня '12 о 12:24

Це різні явища.

Cookie - це просто пара ім'я-значення, яку (точніше, які) сервер може залишити у клієнта (браузера). наочно:

  1. Приходить клієнт, запитує у сервера сторінку.
  2. Сервер в заголовках відповіді може встановити cookies. Наприклад, видавши два заголовка: Set-Cookie: foo = 123 і Set-Cookie: bar = baz - по-російськи - «запам'ятай, foo - 123, а bar - baz».
  3. При наступному зверненні клієнт, якщо він вирішив запам'ятати, говорить серверу «Cookie: bar = baz; foo = 123 ».

Спрощено, не зачіпаючи тонкощі - все, ось все, що представляють собою cookies.

Сесії - більш ефемерне поняття, яке не прив'язане до якоїсь конкретної реальної технології. Це просто якась методика, яка дозволяє відрізнити одного клієнта від іншого, і, як правило, десь зберігати пов'язані з кожним клієнтом дані.

Як правило, сесії реалізуються використовуючи cookies і ідентифікатори сесій. Тобто сервер зі свого боку створює унікальний ідентифікатор, наприклад, «1a2b3c» (session_id про який ви справшівает), а клієнта просить його запам'ятати. Зазвичай - за допомогою cookies, кажучи щось в дусі Set-Cookie: PHPSESSID = 1a2b3c (де «PHPSESSID» - ім'я сесії. Зазвичай, воно тільки одне, вести паралельно кілька сесій потрібно рідко). Зі свого боку сервер десь (залежить від реалізації, іноді це файл, наприклад, / tmp / 1a2b3c. Іноді запис в БД, іноді ще щось) зберігає різні дані, які йому наказано пов'язувати з цією сесією. Наприклад, ім'я користувача.

Ще можна зберігати ідентифікатори сесій в інших місцях. Наприклад, Local Shared Objects ( «флешевскіе cookie»), скористатися наявними можливостями сховищ HTML5, і ще низці менш тривіальних місць, але PHP цього «з коробки» не вміє.

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

Схожі статті