Из-за временных ограничений на территории РФ наблюдаются проблемы с оплатой. Если платёж не проходит, оставьте запрос в службу поддержки.Служба поддержки работает 24/7 — мы всегда на связи по вопросам хостинга и серверов.Открыт прием заявок на аренду выделенных серверов и размещение оборудования в дата-центре.Напоминаем: рекомендуем включить резервное копирование для дополнительной защиты данных.Доступна новая линейка VPS/VDS с NVMe-дисками и увеличенной производительностью.Технические работы на части серверов завершены. Все сервисы работают в штатном режиме.
Статья3 мин чтенияПросмотры1

Как измерить ответ сайта через curl: код, перенаправления и время

Короткая проверка HTTP с ограничением времени: отделяем ошибку соединения от ответа сервера и не принимаем накопительные тайминги за независимые этапы.

Ноутбук и секундомер для проверки времени ответа
В этой статье

Страница открывается медленно, но непонятно, где задержка: при поиске адреса, подключении или ожидании ответа приложения. curl помогает получить повторяемый замер без интерфейса браузера. Это проверка одного HTTP-запроса; она не измеряет загрузку всех ресурсов страницы и выполнение JavaScript.

Подготовьте адрес и границы проверки

Нужен установленный curl. Выберите обычную публичную страницу, чтение которой не изменяет данные. Не используйте адрес выхода из аккаунта, подтверждения заказа или административного действия. После команды ниже введите полный адрес страницы:

read -r TARGET_URL

Затем выполните ограниченный по времени запрос:

curl -sS -o /dev/null --connect-timeout 10 --max-time 30 -w 'code=%{http_code} dns=%{time_namelookup} connect=%{time_connect} first_byte=%{time_starttransfer} total=%{time_total}\n' "$TARGET_URL"

Тело ответа не сохраняется. Ошибки остаются видны, а общий срок выполнения ограничен. Команда делает обычный GET-запрос; изменение метода на HEAD может дать другой ответ приложения и не всегда подходит для сравнения с браузером.

Сначала прочитайте код и ошибку

HTTP-код показывает ответ сервера, если он получен. Ошибка DNS, TLS или соединения находится на другом уровне: при ней обычного ответа HTTP может не быть. Не объявляйте сайт исправным только потому, что утилита завершилась без транспортной ошибки: сервер мог вернуть страницу с ошибкой.

Команда не следует перенаправлениям автоматически. Это полезно для первого шага: можно увидеть, что исходный адрес возвращает перенаправление. Для проверки всей цепочки добавляют -L и разумный предел, например --max-redirs 5, сохраняя общий тайм-аут. Следуйте только ожидаемой цепочке своего сайта.

Тайминги считаются от начала запроса

Показатели DNS, соединения и первого байта — временные отметки от старта операции, а не отдельные длительности, которые нужно складывать. Полное время уже включает предыдущие этапы. При перенаправлениях и повторном использовании соединений интерпретация становится сложнее.

Пример: первый байт появляется заметно позже установления соединения. Это основание изучить обработку запроса и сетевой путь, но не готовое доказательство медленного SQL. Между клиентом и приложением могут находиться TLS, прокси, CDN и другие компоненты.

Проведите несколько сопоставимых измерений

Повторите запрос небольшое число раз с той же машины и к тому же адресу. Первый ответ может отличаться из-за прогрева кэша. Не превращайте проверку в бесконечный цикл: это изменит нагрузку, которую вы пытаетесь измерить.

Зафиксируйте время, точку проверки, код, наличие перенаправления и разброс задержки. Если сравниваете разные машины, учитывайте их сети и DNS. Успешный запрос из дата-центра не гарантирует ту же скорость у посетителя из другого региона.

Краткая карта проверки

Сигнал

Первый вопрос

Следующая проверка

Нет HTTP-ответа

На каком этапе произошёл отказ?

DNS, соединение и TLS

Перенаправление

Ожидается ли другой адрес?

Цепочка с ограничением переходов

Поздний первый байт

Где проходит запрос до приложения?

Прокси, приложение и зависимости

Быстрый HTTP, медленный интерфейс

Какие ресурсы загружает браузер?

Сеть браузера и клиентский код

Что проверять после исправления

Повторите исходный запрос с теми же ограничениями, затем откройте страницу в браузере. Если HTTP-ответ стал быстрым, но интерфейс всё ещё долго загружается, следующая задача относится к ресурсам страницы и клиентскому коду. Не отключайте проверку сертификата ради красивого результата: это меняет условия запроса и скрывает отдельную проблему HTTPS.

Обсуждение 0

Делись опытом и задавай вопросы. Комментарии без ссылок появляются после проверки редактором.

Пока никто не написал. Начни обсуждение.