Восстановление сессии браузера после сетевого сбоя
Ограниченные повторы, контрольные точки и границы приватности помогают восстановить работу без дублирования эффектов.
BotBrowser Team
Нужна структурированная документация по теме Платформа?
Эта статья относится к редакционной библиотеке. Для пошаговой настройки, справки и постоянных обновлений переходите сразу в соответствующий раздел docs.
Сетевой сбой не показывает, завершилось ли действие. Связь могла оборваться до запроса, после его принятия сервером или во время ожидания ответа. Сохраните назначение сессии, запишите контрольную точку и повторяйте только операцию с проверяемым результатом.
Кратко
- Определите канал: запрос страницы, websocket, прокси-маршрут или управление.
- Сохраняйте профиль, хранилище, язык и маршрут в одной генерации восстановления.
- Повторяйте чтения и идемпотентные действия с ограничением; записи сначала подтверждайте.
- Разделяйте видимую очистку браузера, отзыв на сервере и удаление на хосте.
- BotBrowser повторяет разрешённую контрольную точку, но не определяет внешний эффект без подтверждения.
Содержание
- Зафиксируйте контракт сессии
- Контрольные точки и решение
- Восстановление с ограниченным бюджетом
- Приватность и проверка
- Возможность и ограничение BotBrowser
- Итог
- Частые вопросы
Зафиксируйте контракт сессии
До открытия страницы запишите ссылку задания, одобренный профиль, владельца хранилища, версию браузера, политику маршрута и поколение lease. Не храните пароли, тела страниц и лишние URL. После ремонта отклоняйте сообщения старого поколения.
Отделяйте долговечное намерение от изменчивого состояния: действие, последняя принятая точка, бюджет повтора и очистка должны быть устойчивыми; страницы, память, websockets и запросы в полёте таковыми не являются.
Контрольные точки и решение
Контрольная точка задаётся приложением: проверенный ответ, сохранённый документ или подтверждение операции. Успешная навигация не доказывает побочный эффект.
| Наблюдение | Первый шаг | Правило | Ожидаемый результат |
|---|---|---|---|
| Чтение без ответа | Подключиться и прочитать снова | Ограниченный повтор с задержкой | Проверенное чтение или классифицированная ошибка |
| Запись без подтверждения | Узнать статус | Повторять только с ключом идемпотентности | Одна запись результата |
| Потерян канал управления | Приостановить допуск | Не повторять действия вслепую | Один владелец продолжает или изоляция |
| Маршрут недоступен | Оставить назначение на паузе | Не менять маршрут произвольно | Видимая исправимая ошибка |
Без проверки статуса или идемпотентности приложения остановитесь у точки и попросите сверку.
Восстановление с ограниченным бюджетом
Классифицируйте запрос, websocket, прокси или управление; задайте максимум попыток и возраста с переменной задержкой. Оставайтесь в объявленном маршруте: его смена может изменить сетевую идентичность и потребовать нового lease.
При исчерпании бюджета отметьте исправимую ошибку, сохраните последнюю принятую точку, завершите context и изолируйте сомнительное хранилище. В журнале оставьте поколение, версию и категорию без токенов и частных URL.
Приватность и проверка
Cookies, хранилища, IndexedDB, кэш, загрузки и серверные сессии имеют разные сроки. MDN Clear-Site-Data описывает очистку origin, а не удаление удалённых данных. Принципы приватности W3C требуют минимизации и ограничения цели.
Сверяйте назначение, маршрут, порядок точек, подтверждение и очистку в структурированной записи. Проверяйте ожидаемое состояние новым разрешённым context; асинхронный отзыв помечайте ожидающим.
Возможность и ограничение BotBrowser
BotBrowser может повторить разрешённую контрольную точку в объявленных профиле, версии, маршруте и контексте и сравнить видимый результат после контролируемого сбоя. Он не определяет принятие неподтверждённой записи, не отзывает серверные сессии, не проверяет все артефакты хоста и не гарантирует непрерывность. Владелец приложения отвечает за идемпотентность и принятие результата.
Читайте также: Устойчивость долгоживущих browser context и Согласованность сетевого слоя.
Итог
Восстанавливайте намерение, а не потерянное соединение: закрепите владельца, проверьте границу, сверяйте неизвестные записи и ограничьте повторы. Следующий шаг: выполните разрешённый fixture с искусственным сбоем и проверьте результат и очистку.
Полезная запись восстановления хранит стабильный идентификатор, версию контрольной точки, номер попытки, класс маршрута и короткий результат: подтверждено, неизвестно или изолировано. Не превращайте её в копию истории: исключите секреты, тела запросов, полные URL и снимки.
У каждой точки должен быть источник ответа: подтверждение приложения, поиск по ключу идемпотентности, состояние транзакции или решение ответственного владельца. Если источник не различает принятое и неизвестное, сохраните неопределённость и остановите аренду вместо новой записи.
Доказательства браузера и сервиса различны. Первые показывают отправку запроса, чтение ответа или закрытие контекста; вторые показывают принятую, устранённую дубликатами или отозванную транзакцию. Успешная проверка браузера не доказывает удалённый commit.
Если загрузка оборвалась до подтверждения, сравните размер или digest, когда приложение его сообщает, изолируйте сомнительный файл и сделайте очистку наблюдаемой. Если websocket оборвался во время редактирования, сверяйте ревизию документа и повторяйте только операции, разрешённые сервером.
Смена маршрута требует отдельной точки: она может изменить местоположение, политику или авторизацию. Закройте старую аренду, запишите причину и снова проверьте политику.
Финальная приёмка может быть короткой таблицей: владелец, точка, подтверждение сервера, очистка браузера и хранение. Отметьте каждую строку как наблюдаемую, ожидающую или неприменимую. Собирайте только необходимые сигналы и не соединяйте fingerprint, прокси и сессию в постоянную личность.
Вопросы
Нужно ли повторять каждый timeout?
Нет. Повторяйте чтение или явно идемпотентное действие; запись сначала сверяйте по статусу.
Новый context сохраняет старую сессию?
Только при разрешении того же профиля и целостного хранилища; память процесса он не возвращает.
Очистка браузера отзывает серверную сессию?
Нет. Это отдельные границы и доказательства.
Что проверяет BotBrowser?
Разрешённую контрольную точку и видимый результат, но не удалённый эффект или удаление на хосте.
Источники
Похожие статьи
Переведите BotBrowser из исследований в продакшн
Используйте эти руководства, чтобы понять модель, а затем перейти к кроссплатформенной валидации, изолированным контекстам и масштабируемому браузерному развертыванию.