Збереження стану сеансу на стороні сервера (шаблон проєктування)
Зовнішній вигляд
Збереження стану сеансу на стороні сервера (англ. Server Session State) — шаблон проєктування, який пропонує зберігати стан сеансу на стороні сервера.
При реалізації клієнт-серверної архітектури необхідно реалізувати передачу даних між обома сторонами. При цьому варто зберігати інформацію про сеанс.
Даний шаблон пропонує зберігати стан сеансу на стороні сервера. Таким чином, об'єкти сеансу зберігаються в колекції, в оперативній пам'яті серверу, та індексуються за допомогою ідентифікатора сеансу, який передає клієнт.
- Можна миттєво відновити сеанс
- Розмір куки менший
- Висока надійність. Інформація про користувача прихована на сервері
- Можна збільшувати розмір сесії не змінюючи розмір куки
- Викликає навантаження на сервер, оскільки йому доводиться зберігати стан усіх клієнтів
- Якщо сервер виходить із ладу, сесії усіх клієнтів втрачаються
- Важко обмінювати стан сесії при наявності реплікацій вебсервера
Нехай користувач вводить свою електронну пошту та пароль. Тоді такі дані можна зберігати на сервері за допомогою сесій.
session_start();
$_SESSION["user"] = GetFromPost();
print_r($_SESSION);
function GetFromPost()
{
$user = new User();
$user->email = $_POST['user_email'];
$user->password = $_POST['user_password'];
return $user;
}
- Server Session State [Архівовано 3 грудня 2020 у Wayback Machine.]
- Patterns of Enterprise Application Architecture [Архівовано 28 березня 2014 у Wayback Machine.]