Laboratorio: Captura de pacotes HTTP: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 4: Linha 4:
;Requisitos de software: Este laboratório utiliza a ferramenta de captura de pacotes  '''Wireshark'''.
;Requisitos de software: Este laboratório utiliza a ferramenta de captura de pacotes  '''Wireshark'''.
:*Para utilizar o '''Wireshark''' é necessário que o administrador atribua permissão para os usuários normais poderem executá-lo.
:*Para utilizar o '''Wireshark''' é necessário que o administrador atribua permissão para os usuários normais poderem executá-lo.
:*Outra opção é utilizar uma '''máquina virtual''', com permissão de administrador e instalar os aplicativos e utilizar o '''Wireshark'''.
:*Outra opção é utilizar uma '''máquina virtual''' com a placa de rede configurada em modo '''''bridge''''' e com permissão de administrador e instalar os aplicativos e utilizar o '''Wireshark'''.
:Veja no link '''[[wireshark]]''' as instruções para download e instalação do '''Wireshark''', bem como as instruções para uso do ferramenta.
:Veja no link '''[[wireshark]]''' as instruções para download e instalação do '''Wireshark''', bem como as instruções para uso do ferramenta.



Edição das 22h10min de 10 de março de 2017

Laboratório: Captura de pacotes HTTP

Fonte: [1].

Requisitos de software
Este laboratório utiliza a ferramenta de captura de pacotes Wireshark.
  • Para utilizar o Wireshark é necessário que o administrador atribua permissão para os usuários normais poderem executá-lo.
  • Outra opção é utilizar uma máquina virtual com a placa de rede configurada em modo bridge e com permissão de administrador e instalar os aplicativos e utilizar o Wireshark.
Veja no link wireshark as instruções para download e instalação do Wireshark, bem como as instruções para uso do ferramenta.

Objetivos

O objetivo deste laboratório é estudar o funcionamento da Aplicação Web e explorar o funcionamento do protocolo HTTP, incluindo as mensagens de pedido e resposta, memória cache do navegador, acesso a arquivos HTML grandes e arquivos HTML com objetos incluídos.

Pedido e Resposta HTTP

Vamos iniciar a nossa exploração do HTTP baixando um arquivo em HTML pequeno, sem objetos incluídos.

Procedimentos
  1. Verifique com ifconfig a configuração de sua interface de rede;
  2. Inicie o navegador Firefox e não abra nenhuma página Web;
  3. Inicie o Wireshark, em seguida selecione a placa de rede e nas opções de captura selecione o filtro tcp port http, de tal forma que apenas as mensagens HTTP capturadas serão exibidas na janela de listagem de pacotes. ;
  4. Inicie a captura de pacotes
  5. Digite o seguinte URL no navegador http:200.17.101.9/redes/redes1.html;
  6. Pare a captura de pacotes.
Análise dos pacotes capturados
  1. Verifique a mensagem GET (enviada pelo seu navegador para o servidor) e a mensagem de resposta do servidor para o seu navegador;
  2. Verifique os detalhes da mensagem GET;
  3. Verifique o encapsulamento dos protocolos, com a mensagem HTTP sendo transportada em um segmento TCP, que é carregado em um datagrama IP, que por sua vez é levado em um quadro Ethernet.
Perguntas
  1. O seu navegador executa HTTP 1.0 ou 1.1?
  2. Qual a versão de HTTP do servidor?
  3. Quais idiomas o seu navegador indica que pode aceitar ao servidor?
  4. Qual o endereço IP do seu computador e do servidor?
  5. Qual o número da porta TCP utilizada no seu computador e pelo servidor?
  6. Qual o endereço MAC do seu computador?
  7. É possível veridficar o MAC do servidor?
  8. Qual o código de status retornado do servidor para o seu navegador?
  9. Quando o arquivo em HTML que você baixou foi modificado no servidor pela última vez?
  10. Quantos bytes de conteúdo são baixados pelo seu navegador?

Pedido HTTP GET Condicional e Resposta

A maioria dos navegadores web tem uma memória cache que permite armazenar as últimas páginas acessadas. Desta forma o nagegador realiza um GET condicional quando busca um objeto HTTP a fim de verificar se o objeto em cache é o mesmo que está sendo provido pelo servidor.

Procedimentos
  1. Inicie o navegador web;
  2. Limpe o cache do seu navegador (Firefox: Editar -> Preferências -> Avançado -> rede);
  3. Inicie o Wireshark e selelcione o filtro http, de tal forma que apenas as mensagens HTTP capturadas serão exibidas na janela de listagem de pacotes. ;
  4. Digite o seguinte URL no navegador http:200.17.101.9/redes/redes1.html;
  5. Visualize os pacores capturados;
  6. Pressione o botão “atualizar” no navegador;
  7. Pare a captura de pacotes.
Perguntas
  1. Inspecione o conteúdo da primeira mensagem HTTP GET do seu navegador para o servidor. Você vê uma linha If-Modified-Since?
  2. Inspecione o conteúdo da resposta do servidor. O servidor retornou explicitamente o conteúdo do arquivo? Como você pode dizer isso?
  3. Agora inspecione o conteúdo da segunda mensagem HTTP GET do seu navegador para o servidor. Você vê uma linha If-Modified-Since? Caso a resposta seja afirmativa, qual informação segue o cabeçalho If-Modified-Since?
  4. Qual é o código de status e a frase retornada do servidor na resposta à segunda mensagem HTTP GET? É diferente do código de retorno da primeira mensagem?
  5. O servidor retornou explicitamente o conteúdo do arquivo? Explique.
  6. Qual o tamanho da primeira e segunda mensagem de retorno do servidor?

Baixando Documentos Longos

Nos exemplos até agora, os documentos baixados foram simples e pequenos arquivos em HTML. Vamos ver o que acontece quando baixamos um arquivo em HTML grande.

Procedimentos
  1. Inicie o navegador web;
  2. Limpe o cache do seu navegador;
  3. Inicie o Wireshark;
  4. Digite o seguinte URL no navegador http:200.17.101.9/redes/redes2.html;
  5. Atualize a página no navegador;
  6. Pare a captura de pacotes e selecione o filtro http para que apenas as mensagens HTTP seja exibidas.
Análise dos pacotes capturados
  1. Verifique a primeira mensagem GET e a resposta do servidor;
  2. Verifique a carga útil (Content-Length) da resposta HTTP, que é o arquivo HTML completo;
  3. Verifique que o arquivo HTML é muito grande para caber em um segmento TCP, por isto, a mesma é acomodada em vários segmentos TCP. Note que cada segmento TCP é capturado em um pacote separado pelo Wireshark, veja Reassembled TCP Segments.
  4. Verifique a segunda mensagem GET e a resposta do servidor.
Perguntas
  1. Quantas mensagens HTTP GET foram enviadas pelo seu navegador?
  2. Quantos segmentos TCP foram necessários para carregar a resposta?
  3. Qual é o código de status e a frase associada com a resposta à mensagem HTTP GET?
  4. No segundo GET realizado, quantos segmentos TCP foram necessários para obtenção da resposta do servidor?
  5. O que explica a diferença entre a primeira e segunda requisições?

Documentos HTML com Objetos Incluídos

Vamos observar o que acontece quando o seu navegador baixa um arquivo com objetos incluídos, como por exemplo, uma figura.

Procedimentos
  1. Inicie o navegador web;
  2. Limpe o cache do seu navegador;
  3. Inicie o Wireshark;
  4. Digite o seguinte URL no navegador http:200.17.101.9/redes/redes3.html;
  5. Pare a captura de pacotes e selecione o filtro http para que apenas as mensagens HTTP seja exibidas.
Perguntas
  1. Quantas mensagens HTTP GET foram enviadas pelo seu navegador? Explique.
  2. Veja como cada figura foi transportada nos segmentos TCP. Houve fragmentação?


Referências


--Evandro.cantu (discussão) 16h36min de 23 de abril de 2015 (BRT)