## Содержание
- [Основы](#the-basics)
- [Cookie Sessions](#cookie)
- [File System Sessions](#file)
- [Database Sessions](#database)
- [Memcached Sessions](#memcached)
- [Redis Sessions](#redis)
- [In-Memory Sessions](#memory)
## The Basics
Интернет является обезличенным пространством. Это означает, что каждый запрос к вашему приложению не связан с передыдущим вопросом. Тем не менее, **sessions** позволяют хранить произвольные данные для каждого посетителя вашего приложения. Данные сессии для каждого посетителя хранятся на вашем веб-сервере, в то время куки, содержащее **session ID**, хранится на компьютере посетителя. Эти куки позволяет приложению "запомнить" сессии для данного пользователя и получить свои данные сессии при последующих запросах.
> **Примечание:** Перед использованием сессий убедитесь в установке ключа приложения в **application/config/application.php**.
Шесть драйверов сессий доступны "из коробки":
- Cookie
- Файловая система
- База данных
- Memcached
- Redis
- Память (массивы)
## Cookie сессии
Сессии на основе Cookie обеспечивают легкий и быстрый механизм для хранения информации сессий. Они также являются безопасными. Каждое cookie шифруется с помощью сильного AES-256 шифрование. Тем не менее, cookie имеет предел хранения 4 Кб, так что вы можете использовать другой драйвер, если вы храните много данных в сессии.
Для работы в этом режиме установите опцию драйвера сессий Cookie в **application/config/session.php**:
'driver' => 'cookie'
## Сессии "в файловой системе"
Скорее всего, ваше приложение будет работать лучше с использованием сессий в файловой системе.
В то же время, если ваше приложение потребляет много траффика, лучше использовать сессии в базе данных или Memcached сессии.
Для старта, просто включите соотетствующий драйвер в **application/config/session.php**:
'driver' => 'file'
Все готово!
> **Примечание:** Сессии "в файлах" сохраняются в **storage/sessions**, не забудьте дать этой директории права на запись.
## Сессии в базе данных
Для хранения сессий в базе данных сначала [сконфигурируйте соединение с базой данных](/docs/v3/database/config).
Теперь вам нужно создать таблицу сессий. Ниже указаны SQL выражения, которые помогут вам это сделать. Тем не менее, не забывайте - вы можете ипользовать для этого Artisan CLI!
### Artisan
php artisan session:table
### SQLite
CREATE TABLE "sessions" (
"id" VARCHAR PRIMARY KEY NOT NULL UNIQUE,
"last_activity" INTEGER NOT NULL,
"data" TEXT NOT NULL
);
### MySQL
CREATE TABLE `sessions` (
`id` VARCHAR(40) NOT NULL,
`last_activity` INT(10) NOT NULL,
`data` TEXT NOT NULL,
PRIMARY KEY (`id`)
);
Если вам нравится использовать другое имя, просто измените его в **table** опции в файле **application/config/session.php**:
'table' => 'sessions'
Затем просто включите драйвер в **application/config/session.php**:
'driver' => 'database'
## Memcached Сессии
Для использования этой возможности [сконфигурируйте ваши Memcached серверы](/docs/v3/database/config#memcached).
Затем просто "включите" драйвер в **application/config/session.php** файле:
'driver' => 'memcached'
## Redis Сессии
Для использования этой возможности [сконфигурируйте ваши Redis серверы](/docs/v3/database/redis#config).
Затем просто "включите" драйвер в **application/config/session.php**:
'driver' => 'redis'
## Сессии в памяти
Драйвер сохраниния в памяти просто использует простой массив для сохранения данных сессии для текущего запроса. Этот драйвер прекрасно подходит для тестирования, так как не сохраняет данные на диске. Поэтому же он не рекомендуется к использованию в реальной работе.