Порт proxy
Направляйте собственный трафик через выходные узлы FourA из любого клиента, поддерживающего proxy URL: браузера, утилиты загрузки или уже работающего скрапера. Порт proxy открывает туннель к указанной цели и передает байты в обе стороны, поэтому он поддерживает то, что недоступно через JSON API: потоки, большие загрузки и полные сессии браузера.
Бета. Порт proxy находится в стадии беты. Трафик через него пока не тарифицируется, не покрывается мониторингом или обязательствами по доступности, а названия параметров еще могут измениться. Сообщайте нам о любых неполадках.
Подключение
| Параметр | Значение |
|---|---|
| Host | proxy.foura.ai |
| Port | 34004 |
| Protocol | HTTP CONNECT с Basic-аутентификацией |
| Target ports | 443 и 80 |
Учетные данные создаются в панели управления. Создайте пользователя proxy в разделе Proxy на боковой панели, чтобы получить сгенерированные имя пользователя и пароль. Они намеренно отделены от вашего API key: рукопожатие proxy передается в открытом виде при каждом подключении, а пользователя proxy можно ротировать без изменений в интеграции с API. См. Proxy Users.
curl -x http://USERNAME:PASSWORD@proxy.foura.ai:34004 https://example.com
import requests
proxy = "http://USERNAME:PASSWORD@proxy.foura.ai:34004"
r = requests.get("https://example.com", proxies={"https": proxy, "http": proxy})
print(r.status_code)
Этот порт поддерживает только CONNECT. Целевой https:// туннелируется любым клиентом. Обычный http:// работает, если ваш клиент также его туннелирует (curl: --proxytunnel); клиент, который вместо этого перенаправляет прямой запрос на proxy, получает 405 Method Not Allowed.
Параметры передаются в Username
Все, что идет после учетных данных, представляет собой список пар -key-value в любом порядке:
USERNAME-network-residential-country-de-session-a1
Значения задаются словами в нижнем регистре. Дефис внутри значения начинает новую опцию, поэтому -city-new-york считывается как две опции и отклоняется. Неизвестный ключ также отклоняется и никогда не игнорируется: ошибка в -contry-de вернет 400 со списком поддерживаемых ключей вместо отправки запроса через неверную страну.
| Опция | Значения | Описание |
|---|---|---|
network |
shared (по умолчанию, алиас pool), residential |
Сеть источника адреса. Shared использует собственные выходные узлы FourA, включенные в тариф. Residential использует домашние адреса из премиум-трафика тарифа и докупленных пакетов. |
fallback |
residential, off |
Только для сети Shared. Переключает на residential-узел, когда сеть Shared не может обработать запрос. Отключено по умолчанию, срабатывает только при наличии доступного премиум-трафика в тарифе. |
country |
ISO 3166-1 alpha-2, повторяемый | Страна выхода, видимая целевому ресурсу. Повторите для пула из нескольких стран: -country-de-country-fr. |
session |
От 1 до 32 букв, цифр или подчеркиваний | Соединения с одинаковым именем используют один адрес (sticky). Опустите для смены адреса на каждое соединение (rotating). |
state |
слово | Регион. Только Residential. |
city |
слово | Город. Только Residential. |
asn |
число | Сеть по номеру AS. Только Residential. |
os |
windows, android, ios, mac |
Тип устройства, которому принадлежит адрес. Только Residential. |
lifetime |
от 3 до 1440 |
Время удержания sticky residential-адреса в минутах. Только Residential. |
Каждая опция, кроме network, fallback и session, принимает any, что сбрасывает значение, сохраненное для пользователя proxy, для этого конкретного соединения.
Три комбинации отклоняются с кодом 400 вместо частичного применения:
state,city,asn,osилиlifetimeв сети Shared. Сеть Shared настраивается только по стране; добавьте-network-residentialдля таргетинга на город.-fallback-residentialвместе с-network-residential. Fallback не имеет смысла в сети, на которую он должен переключаться.- Точный таргетинг при включенном fallback. Fallback может как сработать, так и нет, поэтому город, который может быть применен лишь иногда, отклоняется.
Сессии
В сети Shared именованная сессия сохраняет один и тот же узел выхода все время использования с плавающим 10-минутным окном. Если узел перестает работать, сессия переключается на другой вместо завершения с ошибкой. Браузер, работающий через порт, всегда должен передавать имя сессии: загрузка страницы открывает десятки соединений, и без сессии каждое пойдет с отдельного адреса.
В сети Residential именованная сессия удерживает адрес в течение lifetime минут либо использует значение сети по умолчанию, если оно не указано.
Сохраненные настройки по умолчанию
Таргетинг, сохраненный для proxy-пользователя в панели управления, применяется к каждому соединению через него, поэтому username может оставаться коротким. Любые параметры в username имеют приоритет для конкретного соединения, а any сбрасывает сохраненное значение. Сохраненное residential-значение по умолчанию расходует средства только тогда, когда это разрешено вашим тарифом; в противном случае соединение обслуживается из shared-сети.
CONNECT-заголовки
Клиент, способный добавлять headers в CONNECT-запрос, может передавать те же параметры в виде заголовков. Header имеет приоритет перед аналогичным параметром в username.
| Header | Аналог |
|---|---|
X-Foura-Network |
-network- |
X-Foura-Fallback |
-fallback- (residential или off) |
X-Foura-Country |
-country-, через запятую для нескольких |
X-Foura-Session |
-session- |
X-Foura-State |
-state- |
X-Foura-City |
-city- |
X-Foura-Asn |
-asn- |
X-Foura-Lifetime |
-lifetime- |
curl -x http://USERNAME:PASSWORD@proxy.foura.ai:34004 \
--proxy-header "X-Foura-Country: de" \
https://example.com
Responses
Успешно открытый туннель возвращает 200 Connection established. При любом отказе возвращается header X-Foura-Error с однострочным описанием причины, поэтому проверяйте этот header в первую очередь.
| Status | When |
|---|---|
| 400 Bad Request | Некорректный request или параметр, который FourA не может обработать. X-Foura-Error указывает параметр и поддерживаемые значения. |
| 403 Forbidden | Целевой порт не обслуживается, либо цель не является публичным хостом в интернете. |
| 405 Method Not Allowed | Обычный request вместо CONNECT. |
| 407 Proxy Authentication Required | Отсутствуют или неверны учетные данные. Ответ никогда не уточняет, какая именно часть неверна. |
| 408 Request Timeout | Клиент подключился и ничего не отправлял в течение 15 секунд. |
| 429 Too Many Requests | У proxy user уже открыто 200 туннелей, либо порт достиг лимита емкости или скорости открытия. |
| 502 Bad Gateway | Для этой цели не найден рабочий выход в рамках лимита времени на выбор, либо собственный резолвер FourA не смог разрешить хост. Это два разных сообщения в X-Foura-Error. |
| 503 Service Unavailable | Порт proxy отключен. |
Limits
- До 200 одновременно открытых туннелей на одного proxy user.
- Поиск выхода занимает до 45 секунд, после чего порт возвращает ошибку 502. Сессия с уже назначенным выходом обычно подключается быстрее чем за секунду.
- Туннель без передачи байтов в обоих направлениях закрывается после двух минут простоя.
- Пользователь proxy, отключенный или удаленный в панели управления, перестает проходить аутентификацию в течение минуты.
Metering
Трафик через порт учитывается в объеме пропускной способности на вашей странице Usage & Limits, а трафик через резидентские выходы также расходует ваш premium-лимит. Соединение, явно запрашивающее -network-residential после исчерпания premium-лимита, все равно обрабатывается; резервный вариант или сохраненная резидентная настройка по умолчанию в таком состоянии не применяются, и соединение обслуживается через общую сеть.
Related
- Proxy Users: создание пользователей proxy и формирование строки подключения в панели управления
- Proxy Request: альтернатива на базе JSON API со встроенными повторными попытками и валидацией
- Reuse a Proxy Across Requests: сохранение единого выхода при работе с JSON API
- Usage & Limits: учет пропускной способности и premium-трафика в рамках тарифного плана