TTFB (Time to First Byte) — это ключевой показатель производительности веб-страницы, который отражает время, прошедшее от момента запроса страницы браузером до получения первого байта ответа от сервера. Важность TTFB заключается в том, что он напрямую влияет на восприятие скорости загрузки пользователем: чем меньше значение TTFB, тем быстрее браузер получает данные для отображения содержимого страницы.
TTFB не является однородным показателем и включает несколько этапов:
DNS lookup Время, затраченное на разрешение доменного имени в IP-адрес сервера. Зависит от кеширования DNS, расположения пользователя и скорости работы DNS-сервера.
TCP handshake Установление соединения с сервером по протоколу TCP. Этот процесс включает три последовательных шага: SYN, SYN-ACK и ACK. Влияние на TTFB особенно заметно при соединениях с удалёнными серверами.
TLS handshake (если используется HTTPS) Время, затраченное на установление защищённого соединения. Оно добавляет несколько миллисекунд к общей задержке, но критически важно для безопасности передачи данных.
Время обработки запроса на сервере Этот этап включает обработку сервером запроса, выполнение бэкенд-логики, доступ к базам данных, генерацию HTML и формирование ответа. В сложных приложениях с динамическим контентом именно этот компонент часто является доминирующим фактором TTFB.
Отправка первого байта ответа Завершающий этап, когда сервер отправляет первый байт данных обратно клиенту. Это момент, когда браузер начинает получать содержимое страницы для дальнейшей отрисовки.
Для измерения TTFB в браузере чаще всего используется объект PerformanceTiming или современные API, такие как PerformanceNavigationTiming:
const [entry] = performance.getEntriesByType('navigation');
console.log('TTFB:', entry.responseStart - entry.requestStart, 'ms');
requestStart — время, когда браузер отправил запрос на
сервер.responseStart — время, когда браузер получил первый
байт ответа.Таким образом, TTFB вычисляется как разница между
responseStart и requestStart, что позволяет
получить точное значение времени ожидания первого байта.
При анализе TTFB важно понимать, что на него влияет не только серверная производительность, но и сетевые задержки. Границы измерения определяются следующими факторами:
Важно учитывать, что TTFB не измеряет полную загрузку страницы, а лишь момент получения первого байта. Следовательно, высокая скорость TTFB не гарантирует быструю визуализацию контента, если рендеринг или загрузка остальных ресурсов остаются медленными.
Контроль TTFB позволяет не только улучшить раннюю реакцию страницы на запрос пользователя, но и положительно влияет на SEO, так как поисковые системы учитывают скорость отклика сервера при ранжировании.