Давайте пройдемо це:
Файли cookie та сеанси - це обидва способи збереження стану програми між різними запитами, які робить браузер. Завдяки їм, наприклад, вам не потрібно входити в систему щоразу, коли ви запитуєте сторінку на StackOverflow .
Печиво
Файли cookie - це невеликі біти даних (довжиною максимум 4 КБ), які містять дані в парах ключ = значення:
name=value
Вони встановлюються або за допомогою JavaScript , або через сервер за допомогою заголовка HTTP .
Файли cookie мають встановлений термін дії, наприклад, із використанням заголовків HTTP:
Set-Cookie: name2=value2; Expires=Wed, 19 Jun 2021 10:18:14 GMT
Який би викликати браузер , щоб встановити кук з ім'ям name2
зі значенням value2
, яке закінчується приблизно в 9 років.
Файли cookie вважаються дуже небезпечними, оскільки користувач може легко маніпулювати їх вмістом. Ось чому ви завжди повинні перевіряти дані файлів cookie . Не думайте, що ви отримуєте від файлів cookie - це обов'язково те, що ви очікуєте.
Зазвичай файли cookie використовуються для збереження стану входу, коли ім'я користувача та спеціальний хеш надсилаються з браузера, а сервер перевіряє їх у відповідності до бази даних, щоб затвердити доступ.
Файли cookie також часто використовуються при створенні сеансів .
Сесії
Сеанси дещо відрізняються. Кожен користувач отримує ідентифікатор сеансу , який надсилається назад на сервер для перевірки за допомогою cookie або змінної GET .
Сеанси зазвичай короткочасні, що робить їх ідеальними для збереження тимчасового стану між програмами. Сеанси також закінчуються, коли користувач закриває браузер.
Сеанси вважаються більш безпечними, ніж файли cookie, оскільки самі змінні зберігаються на сервері . Ось як це працює:
- Сервер відкриває сеанс (встановлює файл cookie через заголовок HTTP)
- Сервер встановлює змінну сеансу.
- Сторінка змін клієнта
- Клієнт надсилає всі файли cookie, а також ідентифікатор сеансу з кроку 1.
- Сервер зчитує ідентифікатор сеансу з файлу cookie.
- Сервер відповідає ідентифікатору сеансу зі списку в базі даних (або пам'яті тощо).
- Сервер знаходить відповідність, зчитує змінні, які тепер доступні на
$_SESSION
суперглобалі.
Якщо PHP не знаходить збігу, він розпочне новий сеанс і повторить кроки з 1-7.
Ви можете зберігати конфіденційну інформацію про сеанс, оскільки він зберігається на сервері, але майте на увазі, що ідентифікатор сеансу все одно може бути вкрадений, якщо користувач, скажімо, ввійшов у систему через незахищений Wi-Fi. (Зловмисник може обнюхувати файли cookie і встановити його як власний, він не побачить самих змінних, але сервер визначить зловмисника як користувача).
Це суть цього. Ви можете дізнатись більше в посібнику PHP з обох тем.