# Сроки жизни и куки

> Простой, потолок, сколько сессий разом и что делается с куками при закрытии

Источник: https://docs.parreq.com/browser-lifetime/

Сессия закрывается сама. Двумя способами, и оба срока приходят в каждом ответе.

## Два срока

| Срок | Значение | Что происходит |
|---|---|---|
| простой | 60 секунд | ничего не пришло после готовности страницы — вкладка закрывается |
| потолок | 120 секунд | общая жизнь сессии с момента `open` |

Оба приходят как `idle_left` и `life_left`. Простой обнуляется каждым шагом,
потолок — ничем.

> **Примечание.**
>   Потолок нужен именно потому, что одного простоя мало: запрос раз в девять
>   секунд держал бы вкладку вечно, а слот пула — вместе с ней.

Числа настраиваются на стороне сервиса. Действующие всегда можно спросить у
[`/v1/browser/sessions`](https://docs.parreq.com/browser-sessions) — поля `idle_sec` и `max_life_sec`.

## Как в это укладываться

**Не делайте пауз между шагами**
    Десять секунд простоя — это меньше, чем кажется, когда между вызовами стоит
    обращение к модели.

**Готовьте значения заранее**
    Решите, что вводить, до `open`, а не между `fill` и `click`.

**Следите за life_left**
    Осталось меньше двадцати секунд — доводите дело до конца или начинайте
    заново.

**Длинные сценарии дробите**
    Две минуты — потолок. Сценарий на пятнадцать шагов надёжнее развести по
    двум сессиям.

Когда срок вышел, следующий вызов отвечает `session_not_found` или
`session_expired`. Это не сбой: сессия отработала своё.

## Сколько сессий разом

Одновременных сессий — **до четырёх на весь сервис**. Это отдельный бюджет от
Search и Fetch: те живут секунды, а сессия минутами держит вкладку и профиль.

Мест нет — приходит `sessions_busy` с кодом 503 и заголовком `Retry-After`.
Повторяйте по нему, а не сразу.

> **Внимание.**
>   Потолок общий, а не на ключ. В счёт идут и чужие сессии, поэтому рассчитывать
>   на все четыре места нельзя.

## Куки

Сессия работает в своём профиле, вынутом из общего пула на всё время жизни: куки,
нажитые на сайте, не достанутся чужому запросу.

При закрытии куки чистятся **выборочно** — всё, кроме поисковых:

**Поисковые остаются**
    Куки Google и Яндекса стоят прогрева и капчи. Терять их значит платить за
    каждую сессию в разы дороже.

**Все остальные стираются**
    Куки посторонних сайтов прогреву не помогают ничем, а чужой вход в учётную
    запись, доставшийся следующему клиенту, — это уже не экономия.

> **Внимание.**
>   Из этого следует главное ограничение: **вход на сайт не переживает закрытия
>   сессии**. Всё, что требует авторизации, делается внутри одной сессии, от
>   `open` до последнего шага.
