Перейти к содержимому

Тест редиректов API: цепочка переходов по шагам

GET /v1/redirekto/tester открывает URL и проходит цепочку редиректов шаг за шагом, как браузер: для каждого шага — код ответа, IP и геолокация сервера, Location, заголовки и время. По итогам — конечный URL, число редиректов, был ли переход на HTTPS и на www/без www, упёрлась ли цепочка в лимит и встретилась ли антибот-защита.

Параметр Тип Обязательный Описание
url string да полный URL со схемой http:// или https://
Окно терминала
curl -G https://proxy.seyka.ru/v1/redirekto/tester \
-H "Authorization: Bearer $SEYKA_API_KEY" \
--data-urlencode "url=http://seyka.ru"
{
"originalUrl": "http://seyka.ru",
"finalUrl": "https://seyka.ru/",
"hops": [
{
"url": "http://seyka.ru",
"statusCode": 308,
"statusText": "Permanent Redirect",
"server": { "ip": "158.160.0.10", "version": 4, "countryCode": "RU", "city": "Moscow", "org": "Yandex.Cloud LLC" },
"location": "https://seyka.ru/",
"durationMs": 41,
"headers": { "location": "https://seyka.ru/", "content-length": "0" }
},
{
"url": "https://seyka.ru/",
"statusCode": 200,
"statusText": "OK",
"server": { "ip": "158.160.0.10", "version": 4, "countryCode": "RU", "city": "Moscow", "org": "Yandex.Cloud LLC" },
"durationMs": 118,
"headers": { "content-type": "text/html; charset=utf-8" }
}
],
"totalHops": 1,
"hasHttpsUpgrade": true,
"hasWwwRedirect": false,
"maxRedirectsReached": false,
"totalTimeMs": 162
}
Поле Описание
originalUrl URL из запроса
finalUrl URL последнего шага
hops шаги цепочки по порядку (см. ниже)
totalHops число редиректов (ответов 3xx) — не hops.length: конечный ответ, шаг с ошибкой и антибот-самоперенаправления не считаются
hasHttpsUpgrade в цепочке есть переход с http:// на https://
hasWwwRedirect в цепочке есть переход, меняющий только www. в имени хоста
maxRedirectsReached цепочка оборвана на лимите шагов — обычно это петля редиректов
botProtection есть, если встретилась антибот-защита на cookie (см. ниже)
totalTimeMs общее время, мс

Шаг цепочки:

Поле Описание
url запрошенный на этом шаге URL
statusCode, statusText код ответа и его название; 0 — запрос не удался, причина в statusText
server если адрес известен — IP сервера с геолокацией: ip, version, countryCode, country, city, org
location значение заголовка Location, если он есть
durationMs время шага, мс
headers если ответ получен — заголовки ответа, имена в нижнем регистре; set-cookie не передаётся
challenge "cookie" — шаг антибот-проверки, а не настоящий редирект

Некоторые сайты (например, за защитой Variti) отвечают редиректом на тот же URL и выставляют cookie — браузер повторяет запрос с ними и проходит дальше. Тест редиректов делает так же: такой шаг помечается "challenge": "cookie", не считается в totalHops, а в результате появляется:

"botProtection": { "kind": "redirect_challenge", "vendor": "variti", "cleared": true }

cleared: false значит, что с cookie цепочка так и не закончилась успешным ответом 2xx: сайт продолжил перенаправлять на себя, ответил ошибкой или запрос оборвался. Обычно это защита, которая требует JavaScript, и пройти её может только настоящий браузер, например Smart Scrape. vendor — догадка по заголовку Server, может отсутствовать.

POST /v1/redirekto/tester принимает массив из 1–25 объектов {"url": "…"} и возвращает массив результатов в том же порядке:

Окно терминала
curl https://proxy.seyka.ru/v1/redirekto/tester \
-H "Authorization: Bearer $SEYKA_API_KEY" \
-H "Content-Type: application/json" \
-d '[{"url": "http://seyka.ru"}, {"url": "https://www.example.com"}]'

Сайт, который не ответил, даёт в своём результате шаг с statusCode: 0, остальные элементы не страдают. Но URL без схемы http:///https:// отклоняет весь пакет кодом 502. Общие правила — в обзоре Redirekto.

  • Не больше 10 шагов; на каждый запрос — 15 секунд. Запросы — GET с заголовками обычного браузера.
  • HTTPS-сайты с сертификатом НУЦ Минцифры проходятся как доверенные. Сертификат, которому нет доверия ни по набору корневых сертификатов браузеров, ни по корню Минцифры, завершает цепочку шагом с кодом 0 и текстом ошибки TLS.
  • Редирект на схему, отличную от http/https, завершает цепочку шагом с кодом 0 и Unsupported redirect protocol.
  • Проверяются только публичные адреса. IP-адрес в числовой записи (2130706433, 0x7f000001), localhost или адрес внутренней сети в url отклоняются кодом 502; обычный публичный IP проверяется. В пакете такой элемент получает шаг с кодом 0, остальные обрабатываются. Имя, указывающее на внутренний адрес, даёт шаг с кодом 0 и Hostname could not be resolved; редирект на внутренний адрес в середине цепочки — тоже шаг с кодом 0, на котором цепочка заканчивается.
  • URL без схемы или с другой схемой — 502. Коды — на странице Ошибки.

Каждый URL — один вызов, сколько бы шагов ни было в цепочке; пакет — по числу элементов. Цена — в таблице цен.