Ответ
Сессия сохраняется до закрытия вкладки (если используется sessionStorage) или до закрытия браузера (если localStorage). Однако серверная сессия (например, через cookies) может быть настроена по-разному:
- По умолчанию серверные сессии (PHP, Node.js и др.) удаляются при закрытии браузера, если кука не имеет срока жизни (
expires/max-age). - Если кука установлена с
expiresилиmax-age, она сохраняется даже после закрытия браузера.
Пример куки с сессией:
// Сессионная кука (удалится при закрытии браузера)
document.cookie = "session_id=abc123; path=/";
// Постоянная кука (сохранится после закрытия)
document.cookie = "token=xyz456; path=/; max-age=3600"; // 1 час Ответ 18+ 🔞
А, ну это классика, блядь! Сидишь такой, втыкаешь в свой сайт, а тут — сессия. И тут вопрос, который всех ебёт: а когда эта сука, блядь, накроется медным тазом?
Смотри, тут как бы два слоя, как в говне, блядь. Первый слой — это то, что у тебя в браузере, в этих твоих localStorage и sessionStorage.
sessionStorage— это как одноразовая зажигалка, блядь. Закрыл вкладку — и всё, пиздец. Чих-пых, и нету. Улетела в рот меня слепых.localStorage— это уже зажигалка, которую ты можешь в жопу засунуть и на следующий день достать. Закрой хоть весь браузер, хоть комп выруби — она там будет лежать, пока ты её сам не сотрёшь или пользователь не почистит кэш. Овердохуища времени может храниться.
Но это всё, блядь, детский сад, штаны на лямках. Настоящая магия, а иногда и пиздец, начинается на сервере. Вот там, сука, сессии через куки.
Сервер тебе говорит: «На, мудила, держи печеньку». И в ней какой-нибудь session_id=abc123. И вот тут, внимание, ёпта, подвох!
- Если кука без срока жизни — это как сессионная зажигалка, только для всего браузера. Закрыл браузер — и сервер тебя забыл, как старого мудака. Кука сдохла, сессия нахуй. Сервер её может ещё какое-то время в памяти держать, но без куки ты к ней не подъедешь.
- А если куке прописали
expiresилиmax-age— вот это уже серьёзно, блядь. Это как паспорт с визой. Браузер закрылся, комп выключился, а эта падла лежит себе на жёстком диске. Откроешь браузер через неделю — а он её обратно на сервер шлёт: «Чё как, я вернулся, ёба!». И если сервер её ещё помнит (сессия не протухла), то тебе опять «добро пожаловать, уёбок».
Вот, смотри, как это в коде выглядит, сука:
// Это как пропуск на один день — закрыл браузер, и в помойку.
document.cookie = "session_id=abc123; path=/";
// А это уже пропуск с годностью, блядь. На час, например.
document.cookie = "token=xyz456; path=/; max-age=3600"; // 1 час
Вот и вся философия, блядь. Либо ты временный гость, которого вышвырнут при первом чихе, либо постоянный клиент, но и ответственности больше — не потеряй эту куку, а то какой-нибудь пидарас шерстяной её подберёт и в твоём акке начнёт творить хуйню.