Короткие ответы
Сколько длится sticky-сессия?
В расширенном имени пользователя ttl поддерживает от 60 до 2 592 000 секунд: от минуты до 30 дней. Это диапазон настройки, а не обещание доступности одного устройства или IP на весь срок. В текущем конструкторе подключений нет поля для времени жизни.
Новое имя сессии гарантирует другой IP?
Нет. Оно задаёт другую сессию, но публичный адрес может повториться. По одному IP нельзя однозначно определить сессию или устройство.
Sticky-сессия сохраняет выбранное устройство; оператор сети может изменить его IP. Выбирайте режим по последовательности действий, затем проверяйте её тем клиентом, который будет выполнять работу.
Выберите режим под задачу
| Режим | Настройка имени пользователя | Когда подходит |
|---|---|---|
| На каждое новое соединение | rot-ondemand | Независимые разрешённые проверки, которым не нужен общий маршрут. |
| По времени | rot-auto5, rot-auto10, rot-auto20, rot-auto60 | Проверки, сгруппированные в интервалы 5, 10, 20 или 60 минут. |
| Sticky-сессия | rot-sticky и sid-<name> | Связанные шаги QA или сбора данных через выбранное устройство. |
Новое соединение и новый HTTP-запрос — не одно и то же. HTTP-клиент может повторно использовать открытое соединение. Поэтому режим ротации по соединениям не означает новый IP для каждого запроса. Документация curl.
Режим по времени задаёт расписание ротации. Он не гарантирует смену адреса уже открытого соединения в точную секунду. Если для работы важна граница интервала, проверьте её на своём клиенте.
Одно имя сессии на одну задачу
Имя сессии содержит от 1 до 64 строчных латинских букв, цифр или знаков подчёркивания. Создайте его один раз в начале задачи и используйте для связанных запросов. Если генерировать имя внутри цикла перед каждым запросом, связь между шагами потеряется.
Этот код только создаёт словарь настроек. Он не отправляет запрос и не содержит учётных данных.
from uuid import uuid4
session_name = "qa_" + uuid4().hex
connection_settings = {
"pool": "residential",
"country": "any",
"rotation": "sticky",
"session": session_name,
"protocol": "http",
}country: "any" приведено для примера. Укажите страну, нужную для задачи, и проверьте её доступность перед запуском. Словарь содержит поля для POST /v1/traffic/build-url; полноценный запрос и авторизация описаны в документации — на английском.
Если публичный API получает режим sticky без имени, он создаёт стабильное имя на основе учётных данных аккаунта. Для независимых задач лучше задавать имена явно: так их проще различать. Имя видно в прокси-логине, поэтому не включайте в него email, пароль или идентификатор клиента.
Что означает ttl
В расширенном имени пользователя ttl-900 запрашивает время жизни 900 секунд — 15 минут. Для уже действующего имени время жизни фиксировано. Изменять число у того же имени, рассчитывая продлить сессию, не следует; для отдельно настроенной сессии используйте новое имя.
Публичный метод POST /v1/traffic/build-url не принимает поле ttl. Не добавляйте его в JSON и не приписывайте сгенерированному адресу конкретный срок жизни. Если длительность критична, уточните нужную настройку до продолжительного запуска.
Разделите срок, устройство, IP и cookie
- Срок сессии — время, на которое запрошена её работа.
- Доступность устройства — может ли выбранное устройство сейчас передавать трафик.
- Сохранение IP — оставила ли сеть прежний публичный адрес на этом устройстве.
- Состояние приложения — cookie, авторизация и данные, которые хранит сайт или клиент.
Больший ttl не удерживает отключившееся устройство в сети и не запрещает оператору менять адрес. Portproof использует общие пулы. Сначала определите, нужно ли задаче продолжить сессию сайта, сохранить устройство выхода или получить прежний IP: это разные проверки.
Смена выхода сама по себе не удаляет cookie. Решение о действительности сессии принимает приложение. Например, Requests Session хранит cookie и пул соединений независимо от имени прокси-сессии. Как работают HTTP cookie.
Подготовьте восстановление после сбоя
Сохраните последний завершённый шаг, время и ошибку. При чтении допустим ограниченный повтор с задержкой, если это разрешает целевой сервис. После отправки формы или покупки сначала выясните, была ли операция выполнена. Повтор запроса на запись может выполнить действие ещё раз. Правила повторов HTTP.
Если требуется начать работу с другой сессией, возвращайтесь к известному состоянию приложения. Не очищайте все cookie только потому, что изменился IP. Для диагностики есть руководство о смене адреса sticky-сессии — на английском и проверки ошибок CONNECT — на английском.
Граница сессии должна совпадать с задачей
| Задача | Граница сессии | Что проверить |
|---|---|---|
| QA своего приложения | Одно имя на связанный сценарий | Состояние приложения сохраняется между разрешёнными шагами. |
| Проверка рекламы или посадочной страницы | Одно имя для страницы и связанных проверок | Сам браузер использует нужные настройки прокси. |
| Независимые проверки публичных страниц | Отдельные задачи могут использовать ротацию | Разрешения, частота запросов и обработка каждого ответа. |
| Сбор данных по расписанию | Явно решить, должны ли запуски разделять состояние | Повторное использование имени намеренно, а не унаследовано случайно. |
Sticky-сессия не регулирует частоту запросов. Соблюдайте разрешённый доступ и лимиты целевого сайта при любом режиме. Мобильный выход также не превращает настольный браузер в телефон: устройство, язык, часовой пояс и размер экрана настраиваются отдельно.
Измерьте трафик типичной задачи
По одному режиму ротации нельзя рассчитать расход. На него влияют ответы, ресурсы браузера, повторное использование соединений и повторы после ошибок. Измерьте небольшой типичный запуск, прежде чем рассчитывать большой объём.
Используйте проверку через curl, чтобы сначала проверить подключение. Учёт передачи объяснён в руководстве по трафику — на английском, расчёт заказа — в руководстве по объёму ГБ — на английском. Текущие тарифы находятся на странице цен — на английском.
Перед продолжительным запуском
- Сохраните одинаковые настройки пула, страны, режима и сессии для связанных шагов.
- Назначьте независимым задачам отдельные понятные имена.
- Уточните требуемую длительность; максимальный допустимый ttl не является гарантией доступности.
- Записывайте время, безопасную метку задачи и коды ошибок без учётных данных.
- Проверьте восстановление с шага, который можно безопасно повторить.
Если неизменный IP обязателен, отслеживайте его и при изменении останавливайте затронутую задачу. Такая проверка отвечает на требование вашей задачи, но не устанавливает, какое именно устройство использовалось.
Допустимое использование
Используйте сессии для разрешённых задач: QA, проверки рекламы, мониторинга цен и исследований. Соблюдайте политику допустимого использования — на английском.