Desenvolvimento Web Anatomia de Uma Requisição HTTP
Desenvolvimento Web Anatomia de Uma Requisição HTTP
Desenvolvimento Web Anatomia de Uma Requisição HTTP
1 de 2
http://www.perotto.com.br/mod/page/view.php?id=412
Pgina inicial Cursos Perotto Desenvolvimento Web 17 fevereiro - 23 fevereiro Anatomia de uma requisio HTTP
Navegao
Pgina inicial
Minha pgina inicial
Pginas do site
Meu perfil
Curso atual
Desenvolvimento Web
Participantes
Relatrios
Geral
17 fevereiro - 23
fevereiro
Introduo
internet
Muitos fatores podem afetar a performance de uma pgina: largura de banda, distncia entre o cliente e o
servidor, tamanho e quantidade de elementos em uma pgina, como esses elementos so carregados e etc.
Precisamos conhecer exatamente como as coisas acontecem por debaixo dos panos, s assim conseguiremos
otimizar nossas pginas e deixar nossos usurios felizes.
Devemos comear por algum lugar a procura por gargalos. Existem muitas ferramentas que podem nos ajudar
com isso. O que todas elas possuem em comum o que chamamos de Waterfall chart, um grfico em cascata
que mostra como os elementos da pgina esto sendo carregados.
Anatomia de
uma requisio
HTTP
Tendncias da
tecnologia web
jan/2014
24 fevereiro - 2
maro
3 maro - 9 maro
10 maro - 16
maro
17 maro - 23
maro
24 maro - 30
maro
31 maro - 6 abril
7 abril - 13 abril
14 abril - 20 abril
21 abril - 27 abril
Cursos
Configuraes
Figura 3: Requisio HTTP
Figura 4: Legenda
DNS Lookup
DNS (Domain Name System) Lookup o processo de resoluo de nome (de domnio) em IP, ou seja, achar
atravs de uma url, como http://www.google.com.br, o IP associado a mesma, que o que o browser precisa
para fazer a conexo com o servidor remoto.
Um ponto importantissmo que um DNS Lookup ir acontecer para cada domnio diferente que sua pgina
possa ter associado a ela, por exemplo: http://images.seusite.com.br ,http://static1.seusite.com.br. Cada um
desses subdomnios gerar um novo DNS Lookup j que diferentes subdomnios podem estar associados a
difentes IPs.
Initial Connection
Todos as requisies HTTP que um browser faz para o servidor so trafegadas atravs de conexes TCP
(Transmission Control Protocol), portanto toda requisio precisa de uma conexo TCP ativa para que se possa
17/2/2014 18:01
2 de 2
Administrao da Pgina
Editar configuraes
Funes designadas
localmente
Permisses
Verificar permisses
Filtros
Logs
Backup
Restaurar
http://www.perotto.com.br/mod/page/view.php?id=412
Administrao do curso
Mudar papel para...
Minhas configuraes de
perfil
Administrao do site
Figura 5: Handshake
1.
2.
3.
4.
Browser envia um pacote com o metadado SYN (Sequence Number) para o servidor;
Servidor responde com ACK (Acknowledged) e um outro SYN;
Browser finaliza o cumprimente (handshake) com mais um ACK;
Conexo estabelecida.
Keep-Alive Header
Um novo header foi introduzido no HTTP 1.1 com o intuito de reaproveitar conexes TCP para difentes
requisies. Quando utilizamos o header Connection: keep-alive uma conexo TCP aberta e que nao tenha dado
timeout ainda ser reaproveitada para trafegar outras requisies HTTP, evitando assim o overhead de se
estabelecer conexes TCP (handshake).
Content Download
Depois de receber o primeiro byte, o resto em azul o tempo de download do componente. Perceba na figura
3 que s de bater o olho percebemos que mais da metade do tempo gasto nessa requisio foi com REDE!,
DNS Lookup, estabelecimento de conexo TCP e TTFB (resumidamente, consideramos esse tempo
simplesmente como LATNCIA).
Concluso
Digo novamente, ns desenvolvedores web precisamos conhecer muito tudo isso. Esse tipo de conhecimento
esta escondido e poucas pessoas tm, ou tentam aprender, mas com certeza saber isso faz de voc um melhor
desenvolvedor.
17/2/2014 18:01