Время до первого байта

Время до первого байта (англ. Time to first byte, TTFB) — показатель, используемый для оценки отзывчивости веб-сервера или другого сетевого ресурса.

Время до первого байта измеряет промежуток между отправкой клиентом HTTP-запроса и получением первым байтом страницы в браузере пользователя. Этот интервал состоит из времени установки сокет-соединения, передачи запроса и получения первого байта страницы[1]. Хотя иногда время до первого байта ошибочно считают рассчитываемым после разрешения DNS, изначально в сетевых технологиях TTFB учитывает сетевую задержку при измерении времени начала загрузки ресурса[2]. Как правило, меньшие (более быстрые) значения времени до первого байта считаются признаком хорошо настроенного серверного приложения. Например, низкое время до первого байта может указывать на малое количество динамических вычислений на веб-сервере, хотя чаще такое достигается благодаря кешированию на уровне DNS, сервера или приложения[1]. Обычно очень низкое TTFB наблюдается при раздаче статических страниц, тогда как увеличенное время до первого байта характерно для объёмных динамических запросов к базе данных[3].

Применение в веб-разработке

Время до первого байта важно для веб-страницы, так как оно указывает на страницы, загружающиеся медленно из-за серверных вычислений, которые можно было бы перенести на клиентский скриптинг. Обычно это касается простых скриптов и операций, например, смены изображений, не являющихся GIF-анимациями, с помощью JavaScript путём изменения уровня их прозрачности. Такой подход позволяет ускорить сайт за счёт загрузки нескольких маленьких изображений через отдельные сокеты вместо одной большой картинки. Однако данный метод является более ресурсоёмким для клиентского устройства и на старых ПК может, наоборот, замедлять отображение страницы при рендеринге.

Значение показателя

Время до первого байта часто используется поисковыми системами, такими как Google и Yahoo, для улучшения ранжирования сайтов, поскольку более быстрый отклик делает сайт доступным раньше других[4]. Однако у этого показателя есть недостатки: сервер может отправить только первую часть HTTP-заголовка до того, как содержимое будет готово к передаче, чтобы уменьшить TTFB. Несмотря на то, что такой подход может показаться обманчивым, он сообщает пользователю, что веб-сервер активен и скоро приступит к выдаче контента. Это может быть полезно по ряду причин, в том числе потому, что такая стратегия приводит к установлению постоянного соединения, снижая количество повторных попыток подключения со стороны браузера или пользователя, поскольку соединение уже установлено и ожидает загрузки содержимого[5].

Время до первого байта и время загрузки

Время загрузки — это период, необходимый, чтобы веб-страница полностью загрузилась и стала доступна в браузере. Часто при доставке веб-страниц используется сжатие в формате gzip, что уменьшает объём данных для загрузки[5]. Такая практика не позволяет отправить первый байт до завершения компрессии, что значительно увеличивает время до первого байта. В таких случаях TTFB может вырасти с 100—200 мс до 1000-20000 мс, однако сама страница загрузится и станет доступна пользователю гораздо быстрее. Многие сайты наблюдают пятикратный-десятикратный рост времени до первого байта, но при этом общее время загрузки страницы сокращается примерно на 20 %.

Примечания

  1. 1 2 Wagner, Jeremy. Web Performance in Action: Building Fast Web Pages : [англ.]. — Simon and Schuster, 22 декабря 2016. — ISBN 978-1-63835-376-8.
  2. Tu, Kenneth. Performance Tuning and Optimizing ASP.NET Applications : [англ.] / Kenneth Tu, Jeffrey Hasan. — Apress, 1 января 2008. — ISBN 978-1-4302-0758-0.
  3. Artasanchez, Alberto. AWS for Solutions Architects: Design your cloud infrastructure by implementing DevOps, containers, and Amazon Web Services : [англ.]. — Packt Publishing Ltd, 19 февраля 2021. — ISBN 978-1-78953-914-1.
  4. Silhavy, Radek. Software Engineering Perspectives in Systems: Proceedings of 11th Computer Science On-line Conference 2022, Vol. 1 : [англ.]. — Springer Nature, 22 августа 2022. — ISBN 978-3-031-09070-7.
  5. 1 2 Panigrahi, Bijaya Ketan. Smart Innovations in Communication and Computational Sciences: Proceedings of ICSICCS 2017, Volume 2 : [англ.] / Bijaya Ketan Panigrahi, Munesh C. Trivedi, Krishn K. Mishra … [et al.]. — Springer, 11 июля 2018. — ISBN 978-981-10-8971-8.

Категории