Тест редиректов 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 — один вызов, сколько бы шагов ни было в цепочке; пакет — по числу элементов. Цена — в таблице цен.