Time To First Byte

  • Publicado em: 05/01/2020

Não li, nem lerei

Um breve resumo para pessoas cansadas

Time To First Byte ou TTFB, é uma medida que indica a duração entre uma requisição HTTP e o momento que o browser inicia o recebimento desta resposta, ou seja, recebe o primeiro byte. Em outras palavras, é o tempo gasto a partir da requisição do nosso dispositivo até chegar no servidor e voltar carregando o primeiro byte de informação.

“O tempo de resposta do servidor mede quanto tempo ele leva para carregar o HTML necessário para começar a processar a página de seu servidor, subtraindo o tempo de latência de rede entre o Google e seu servidor.” - Google

De acordo com o Google, o tempo de resposta aceitável deveria ser de 200 milisegundos ou menos.

Como frontend, por que você deveria se importar com isso?

É real que o frontend normalmente não tem poder para resolver esta situação uma vez que depende de infraestrutura da empresa que está hospedando o site. Se está num servidor compartilhado ou dedicado, a quantidade e velocidade de disco e memória RAM disponíveis, utilização de um serviço de CDN para cachear arquivos, enfim…

Porém, nós temos que ficar sempre alertas porque todo o trabalho de minificar css/js/imagens, usar gzip, diminuir requests, otimizar o bundle, remover CSS e JS blocantes, carregar arquivos de maneira assíncrona, atrasar a execução de scripts não tão importantes - e por aí vai -, pode ir pro lixo uma vez que o TTFB está muito alto e causando má impressão no usuário que acessa sua página. E além disso, o TTFB é uma das métricas levadas em consideração pelo Google para rankeamento.

O que pode impactar o TTFB?

Três ações podem impactar:

  1. O envio da requisição pela máquina do cliente ao servidor;

Performance do DNS lookup, velocidade da internet do usuário, distância do servidor ou interrupções na conexão.

  1. O processamento do servidor e geração da resposta e;

Processamento de scripts(uso de disco e memória RAM), chamadas a base de dados e comunicação com outros sistemas.

  1. O envio da resposta do servidor ao cliente.

Autoexplicativo.

Como medir o Time To First Byte?

Você pode utilizar alguma das inúmeras ferramentas de performance disponiveis na web, sendo que aconselho o Webpagetest e o console do Google Chrome, você pode aprender o processo clicando aqui e acessando o tutorial do Google.

Curiosidade

A Cloudfare diz ter realizado testes extensivos utilizando nginx enquanto investigava sobre TTFB e uma diferença significante foi notada quando a compressão é ou não ativada. O gzip reduz o tempo de download das páginas porém tem um custo, aumenta o TTFB. Isso acontece porque o nginx espera até que a compressão tenha iniciado antes de enviar os cabeçalhos HTTP e quando a compressão está desabilitada envia de uma vez.

Referências

*[TTFB]: Time to First Byte *[DNS lookup]: Processo de encontrar o endereço IP de qualquer url na internet

Felipe Marciano
Sobre o autor
Felipe Marciano

dev front-end, viciado em café, cinema e abraçar cachorros.

Tem perguntas,fale comigo.Respondo assim que puder.
Para mandar um "Oi" 👋felipexperto@gmail.com
Me siga no LinkedIn 🚀linkedin.com/in/felipexperto/
© 2024, Construído com Gatsby