Гид по технологиям

Проверка скорости сайта с помощью curl

4 min read Performance Обновлено 17 Nov 2025
Проверка скорости сайта с помощью curl
Проверка скорости сайта с помощью curl

Визуализация метрик времени ответа и загрузки веб‑страницы

Зачем проверять скорость загрузки

Скорость загрузки влияет на поведение пользователей и позиции в поисковой выдаче. Даже небольшая задержка ухудшает конверсию и увеличивает отток. Администратору важно мониторить время отклика и быстро реагировать на деградацию.

Коротко о curl

Curl — утилита для передачи данных по URL. Она умеет показывать детальные тайминги выполнения запроса. Под «таймингами» понимают разные этапы: разрешение DNS, установление TCP/SSL‑соединения, начало передачи данных и полное завершение запроса.

Тестируем скорость сайта с curl

Ниже пример для HTTP‑сайта. Команда выводит набор временных метрик и перенаправляет тело ответа в /dev/null.

curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://www.howtoforge.com

Пример ожидаемого вывода:

Testing Website Response Time for :https://www.howtoforge.com/

Lookup Time:        0.511
Connect Time:       0.565
Pre-transfer Time:  0.565
Start-transfer Time:    0.726

Total Time:     0.727

Разбор ключевых метрик

  • time_namelookup — время разрешения DNS в секундах.
  • time_connect — время до установления TCP‑соединения.
  • time_pretransfer — время до момента, когда передача файла была готова начать.
  • time_starttransfer — время до получения первого байта (TTFB).
  • time_total — общее время операции.

Важно: TTFB — одна из основных метрик для оценки серверной задержки.

Тест для HTTPS

При HTTPS добавляется время установки SSL/TLS (time_appconnect) и время переадресации (time_redirect), если есть редиректы:

curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nAppCon Time:\t\t%{time_appconnect}\nRedirect Time:\t\t%{time_redirect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://www.howtoforge.com

Ожидаемый пример:

Testing Website Response Time for :https://www.howtoforge.com/

Lookup Time:        0.511
Connect Time:       0.564
AppCon Time:        0.724
Redirect Time:      0.000
Pre-transfer Time:  0.724
Start-transfer Time:    1.085

Total Time:     1.264

Удобный шаблон вывода в файл

Если не хотите каждый раз писать длинную строку, сохраните шаблон в файл и используйте его через -w “@file”:

Создайте файл:

nano curl_test.txt

Добавьте содержимое (именно так, с управляющими последовательностями):

time_namelookup:  %{time_namelookup}\n
time_connect:  %{time_connect}\n
time_appconnect:  %{time_appconnect}\n
time_pretransfer:  %{time_pretransfer}\n
time_redirect:  %{time_redirect}\n
time_starttransfer:  %{time_starttransfer}\n
----------\n
time_total:  %{time_total}\n

Затем запускайте:

curl -w "@curl_test.txt" -o /dev/null -s https://www.howtoforge.com

Пример вывода:

time_namelookup:  0.013
time_connect:  0.056
time_appconnect:  0.160
time_pretransfer:  0.160
time_redirect:  0.000
time_starttransfer:  0.511
----------
time_total:  0.753

Вы можете заменить www.howtoforge.com на свой домен или IP.

Чек‑лист для администратора

  • Проверить DNS: latency и TTL записей.
  • Проверить сертификат TLS и время рукопожатия (AppCon Time).
  • Оценить TTFB — если высокая, посмотрите серверную нагрузку и бэкенды.
  • Провести трассировку сети (traceroute/mtr) при подозрениях на сеть.
  • Сравнить результаты с разных географических точек.
  • Повторять тесты в разное время суток для выявления пиков.

Быстрая методология для постоянного мониторинга

  1. Сохраните шаблон вывода в файл (curl_test.txt).
  2. Настройте cron‑задачу на сервер мониторинга или на локальной машине для регулярного запуска.
  3. Логируйте результаты в файл или отправляйте в систему метрик (Prometheus, InfluxDB).
  4. Настройте тревоги по порогам (например, если time_total > 1.5 с).

Когда curl‑тесты дают ложный результат

  • Клиентская сеть перегружена — результаты локального запуска могут быть медленнее реального сервера.
  • CDN кэширует контент: первый запрос может быть медленнее, следующие — быстрее.
  • Локальные DNS‑резолверы добавляют задержку. Проверьте с публичным DNS (8.8.8.8).
  • Если сайт балансируется, запросы могут попасть на разные бэкенды с разными характеристиками.

Альтернативные инструменты

  • wget — простая альтернатива, но менее детальная по таймингам.
  • apachebench (ab) или wrk — для нагрузочного тестирования.
  • WebPageTest, GTmetrix — для клиентских метрик и анализа фронтенда.
  • curl + tcpdump/wireshark — для глубокого сетевого анализа.

Примеры сценариев и тесты при приёмке

  • Базовый тест: получить time_total < 1 с для страницы с минимальным контентом.
  • TLS‑проверка: time_appconnect < 0.5 с.
  • Перформанс под нагрузкой: использовать wrk/ab для проверки устойчивости при N одновременных подключениях.

Краткие рекомендации по оптимизации

  • Используйте HTTP/2 или HTTP/3, где доступно, чтобы снизить накладные расходы на соединения.
  • Включите кэширование в CDN и на стороне сервера.
  • Минимизируйте размер критических ресурсов (CSS/JS/изображения).
  • Настройте keep‑alive, gzip/brotli и оптимизируйте базу данных.

Важно: curl измеряет сетевые и серверные задержки. Он не заменяет инструментов для анализа фронтенда и рендеринга в браузере.

Критерии приёмки

  • Выполнен тест curl с шаблоном и сохранён лог.
  • Все ключевые метрики проверены и задокументированы.
  • Настроены алерты на существенную деградацию time_total и time_starttransfer.

Однострочный глоссарий

  • TTFB — time to first byte, время до первого байта ответа.
  • DNS latency — задержка разрешения доменного имени.
  • AppCon Time — время установки TLS/SSL.

Итог

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

Примечание: заменяйте URL на ваш домен при выполнении команд и выполняйте тесты из нескольких точек для более точной картины производительности.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Microsoft Store открывается сам — как исправить
Windows

Microsoft Store открывается сам — как исправить

Скачать и установить appx/appxbundle/msixbundle
Windows

Скачать и установить appx/appxbundle/msixbundle

Кнопка «Установить» в Microsoft Store не отображается
Windows

Кнопка «Установить» в Microsoft Store не отображается

Полноэкранный режим в Windows 10 — как включить
Windows

Полноэкранный режим в Windows 10 — как включить

Восстановление приложений на iPhone и iPad
Мобильные устройства

Восстановление приложений на iPhone и iPad

Как редактировать полученное письмо в Outlook
Outlook

Как редактировать полученное письмо в Outlook