Проверка цепочек статусов HTTP

Введите URL и увидите каждый шаг на пути к нему: каждый статус перенаправления, каждую цель, итоговый URL и заголовки безопасности итогового ответа — отслеженные с сервера sysosx, поэтому цепочка — это то, что видит остальной интернет, а не то, что ваш браузер уже закэшировал.

Предпочитаете автоматическое наблюдение? Наблюдайте бесплатно с myeventwatch — оповещения об истечении срока и простоях, карта не нужна.

Что такое цепочка перенаправлений

Цепочка перенаправлений — это последовательность адресов, которые браузер или краулер на самом деле посещает по пути к запрошенной вами странице. Вы вводите URL; сервер отвечает «здесь больше нет, попробуйте этот»; клиент следует дальше, и следующий сервер может ответить так же. Каждый шаг — это хоп, и каждый хоп несёт код статуса, который говорит, что это за переезд. Цепочка из одного хопа — нормальная форма современного веба: обычное http, повышенное до https, или голый apex-домен, отправленный на www. Цепочка из двух-трёх хопов обычно означает, что два разных механизма высказали своё мнение — правило CDN плюс правило CMS или правило миграции, наложенное на более старое. Цепочка, которую показывает эта страница, отслеживается с сервера sysosx, хоп за хопом, при этом каждый хоп перед следованием заново проверяется на безопасность, до пяти хопов.

Статус каждого хопа — та часть, которую стоит читать внимательно. 301 или 308 говорит, что переезд постоянный: старый адрес исчез, и поисковые системы должны передать его рейтинг новому адресу. 302 или 307 говорит временный: старый адрес может вернуться, поэтому рейтинг остаётся на месте, а кэши не должны закрепляться. 303 говорит «ответ вон там» и чаще всего встречается после отправки форм. Практический сбой — это 302, который должен был быть постоянным, — правило миграции, написанное в спешке, — который тихо теряет рейтинг и оставляет кэши раздавать старый адрес ещё долго после переезда. Цепочки ломаются и более скучными способами: хоп обратно к более раннему адресу зацикливается навсегда, хоп на другой хост теряет путь, а хоп с https обратно на http отменяет безопасность, которую первый хоп только что установил.

Как читать результат

Результат перечисляет хопы по порядку, начиная с введённого вами URL. Строка хопа показывает запрошенный адрес, возвращённый статус и — для перенаправления — цель, на которую он указывал. Последняя строка — адрес, который действительно ответил содержимым, вместе с его статусом, заголовком сервера, если он был отправлен, и общим временем отслеживания. Ниже суммируются заголовки безопасности итогового ответа: какие защитные заголовки присутствуют, а каких не хватает. Цепочка, заканчивающаяся статусом 4xx или 5xx, — это не проблема перенаправлений, это отказ самого назначения — цепочка всё равно говорит вам, как вы пришли к отказу, а исправление обычно живёт именно там. Результат «слишком много перенаправлений» означает, что пятый хоп всё ещё указывал дальше; показанная цепочка — это доказательство, и исправление — укоротить её, а не следовать дальше.

Связанные инструменты: распространение DNS, когда проблема в том, что разные места видят разные адреса, проверка здоровья сайта для полной картины — достижимость, сертификат, срок действия и записи вместе — и проверка SSL, когда хоп приземляется на ошибку сертификата.

Дополнительное чтение: почему сайт выглядит по-разному из разных мест — цепочки перенаправлений, распространение DNS и промежуточные кэши, и как понять, что именно вас кусает.

Частые вопросы

Эта проверка выполняется из моего браузера или с сервера?

С сервера. Ваш браузер отправляет URL в sysosx, и проверяющий sysosx получает его — следуя за каждым перенаправлением, хоп за хопом, со своей собственной позиции в сети. В этом и смысл: цепочка, отслеженная с сервера, показывает то, что видят поисковые системы и сети посетителей, а не то, что кэш вашего браузера уже знает. Запрос исходит от проверяющего sysosx, и введённый вами URL — единственное, что отправляется.

Почему важна начальная схема?

Потому что первый хоп часто самый важный. URL, введённый как http://, отслеживается начиная с http, поэтому повышение до https проявляется как собственный хоп — именно то, что вам нужно при аудите того, действительно ли обычное HTTP перенаправляет. URL, введённый как https://, отслеживается с https. Голое имя хоста по умолчанию использует https.

Что означают разные статусы перенаправлений?

301 и 308 — постоянные: старый адрес исчез навсегда, и поисковые системы должны перенести рейтинг на новый. 302 и 307 — временные: старый адрес может вернуться. 303 означает «идите посмотрите туда» (обычно после отправки формы). Для миграции сайта вы почти всегда хотите 301 или 308; 302, который должен был быть постоянным, тихо теряет рейтинг и путает кэши.

Сколько перенаправлений — это слишком много?

Проверяющий следует не более чем за пятью. Цепочка из одного-двух хопов — норма (http к https, apex к www). Три и более обычно означают накопившиеся слои: правило CDN, правило CMS и старое правило миграции, срабатывающие по очереди. Каждый хоп стоит одного кругового обхода и немного рейтингового сигнала, а цепочки длиннее пяти сообщаются как слишком длинные вместо бесконечного следования — такая длинная цепочка сама по себе является находкой.

Почему есть ограничение скорости?

Каждое отслеживание делает настоящие запросы к чужому серверу, хоп за хопом. Чтобы оставаться вежливым, свежие отслеживания ограничены на посетителя (около двадцати в час, с небольшим запасом на всплески), а результаты кэшируются на час. Закэшированный результат помечается как таковой; добавьте ?fresh=1 к вызову API для повторной проверки при тех же ограничениях.