quarta-feira, 2 de novembro de 2016

Entendendo a requisição HTTP e seu caminho pela internet

O podcast DNE 77 entrevistou o PotHix, que comentou do livro que escreveu pela casa do código, desconstruindo a Web inspirado após fazer a palestra do vídeo abaixo:

Os slides da palestra estão disponíveis no SlideShare Desconstruindo a Web.

No vídeo é explicada toda resolução da requisição HTTP passando por:
  1. Interpretação do texto digitado pelo usuário no navegador, inclusive para saber se é um termo de pesquisa (que direciona para alguma engine de pesquisa como o Google) ou uma url que deve buscar em algum servidor
  2. Verificação se há algo no cache do navegador
  3. Se for url, resolução do DNS (Domain Name System), passando por cache do navegador, do sistema operacional.
  4. Uso do comando strace do linux, para analisar as chamadas do sistema pelo chrome (Para mais informações achei o post Analisando aplicações Linux com strace e ltrace do Sergio Prado)
  5. Resolução do DNS, inclusive a priorização entre ipv6 e ipv4
  6. Explicação do DNSTracer (Post com explicação em português do DNSTracer)
  7. Explicação do UDP e TCP
  8. Explicação do HTTP e HTTPS (Artigo explicando sobre HTTPS "The First Few Milliseconds of an HTTPS Connection")
  9. A apresentação foca em Http v1. Para saber um pouco mais sobre HTTP v2, e todos seus ganhos, tem o podcast Hipsters.tech #13 HTTP/2: magia com o novo protocolo)
  10. Uso do comando traceroute do linux
  11. Explicação do recebimento da requisição pelo Servidor proxy HTTP (No exemplo NGINX)
  12. Recebimento da requisição Servidor de aplicação (No caso Rack, Ruby e Rails) e seu retorno até o navegador
  13. Explicação de como o navegador funciona (Inspirado no artigo How Browsers Work: Behind the scenes of modern web browsers)

A apresentação cita várias fontes consultadas, algumas colocadas acima, dentre elas, o vídeo lúdico explicando como a internet funciona (Dawn of the Net - How the Internet works) abaixo: