403, 429 и 503 через прокси: реальный тест backoff
Тест на открытом HTTP endpoint: прокси доставил 200/403/429/503, а три ограниченных повтора после 429 показали, почему нужен лимит.
Команда InfraProxy
18 августа 2026 г.
В контролируемом тесте прокси корректно доставил ответы 200, 403, 429 и 503. Значит, HTTP-ошибка сама по себе не доказывает, что прокси не работает: он мог успешно передать отказ тестового сервера.
Методика
Тест выполнен 18 августа 2026 года через один DC HTTPS-прокси. Цель — открытый сервис httpbingo.org, который возвращает заданный HTTP-статус.
Перед матрицей проверили базовое подключение:
- внешний IP получен;
- запрос завершился за 887 мс;
- в отдельной проверке 10 из 10 узлов ответили;
- все 10 успешных запросов вернули разные выходные IP.
Credentials и IP-адреса в публикацию не включены.
Матрица статусов
| Запрошенный статус | Полученный статус | Время, мс |
|---|---|---|
| 200 | 200 | 818 |
| 403 | 403 | 860 |
| 429 | 429 | 857 |
| 503 | 503 | 853 |
Все четыре ответа совпали с ожидаемыми. На сетевом уровне прокси установил соединение и передал HTTP-ответ.
Почему 403 не равен «мёртвый IP»
403 Forbidden означает, что HTTP-сервер отказал запросу. Причиной могут быть права, URL, заголовки или правила источника. В нашем тесте 403 был ожидаемым ответом специального endpoint.
Сетевой сбой выглядел бы иначе: ProxyError, connect timeout, TLS error или разрыв соединения до получения HTTP-статуса.
Что показал тест backoff
Затем тот же прокси три раза запросил endpoint, который всегда возвращает 429. Между попытками использовались паузы 1 и 2 секунды.
| Попытка | Статус | Время, мс | Пауза после |
|---|---|---|---|
| 1 | 429 | 851 | 1 с |
| 2 | 429 | 814 | 2 с |
| 3 | 429 | 930 | остановка |
Backoff не «исправил» 429, потому что тестовый endpoint специально всегда возвращает этот статус. Зато лимит в три попытки остановил бесконечный цикл.
Производственный алгоритм
import random
import time
def retry_delay(attempt: int, retry_after: str | None) -> float:
if retry_after and retry_after.isdigit():
return float(retry_after)
return (2 ** attempt) + random.uniform(0, 0.5)
for attempt in range(3):
response = make_request()
if response.status_code != 429:
break
if attempt == 2:
raise RuntimeError("429: бюджет повторов исчерпан")
time.sleep(retry_delay(attempt, response.headers.get("Retry-After")))
Если сервер прислал Retry-After, используйте его. После исчерпания бюджета отправьте задачу в очередь ошибок и снизьте частоту для всего домена.
Ограничения теста
Тестовый endpoint не моделирует реальную антибот-систему, динамическую квоту или CAPTCHA. Один прокси и короткий прогон не показывают uptime пула. Полученные миллисекунды относятся только к указанному маршруту и времени.
Тест доказывает более узкое: HTTP-статус и сетевой сбой нужно учитывать раздельно, а backoff должен иметь предел.
Этичность
Матрица использовала открытый сервис для тестирования HTTP-статусов. На рабочих источниках соблюдайте robots.txt, Crawl-delay, условия использования и Retry-After. Не ротируйте IP ради обхода опубликованной квоты и не создавайте повторными запросами лишнюю нагрузку.
Методика диагностики и порядок сравнения режимов описаны в разборе 403, 429 и timeout. Для проверки своей конфигурации используйте страницу прокси.
Ключевые выводы
- Прокси корректно доставил все четыре ожидаемых статуса.
403,429и503не равны сетевой ошибке прокси.- Три попытки с backoff снова получили
429, после чего тест остановился. - Backoff снижает частоту, но не гарантирует успех и должен иметь предел.
Краткий ответ: HTTP-ошибка показывает ответ сервера, а не поломку прокси; ограниченный backoff нужен, чтобы не превратить отказ в бесконечную нагрузку.
Нужна прокси-инфраструктура под вашу нагрузку?
Сравните Datacenter и ISP прокси, протоколы и условия теста перед договором.
Перейти к проксиЧитайте также
403, 429 и timeout: диагностика доступа к сайту
Как отличить ограничение источника от ошибки прокси: коды 403/429, timeout, TLS, Retry-After, логи и безопасный порядок проверки.
РуководстваCAPTCHA в сборе данных: диагностика и безопасная реакция
Как отличить CAPTCHA от 403, 429 и сбоя прокси, снизить нагрузку на источник и решить, когда остановить сбор или перейти на API.
ТехническоеDC и ISP прокси: тест 80 адресов на подключение
Реальный тест 40 DC и 40 ISP адресов: успешность проверки IP, уникальность выходов, median, p95, выбросы и ограничения сравнения.