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

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
 
(28 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
=Laboratório: Captura de pacotes HTTP=
=Laboratório: Captura de pacotes HTTP=
Fonte: <ref>http://wiki.sj.ifsc.edu.br/wiki/index.php/RED29004-2015-1</ref>.


;Para este laboratório será utilizado a ferramenta de captura de pacotes [[wireshark]]: Veja no link as instruções para download e instalação do wireshark, bem como as instruções para uso do ferramenta.
;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.
:O '''laboratório''' deve ser realizado em uma '''máquina virtual''', em virtude da necessidade de conta de '''administrador''' para 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.
Fonte: <ref>http://wiki.sj.ifsc.edu.br/wiki/index.php/RED29004-2015-1</ref>.


==Objetivos==
==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 (GET) e resposta, formatos de mensagens HTTP, baixando arquivos grandes em HTML, baixando arquivos em HTML com objetos incluídos, e autenticação e segurança HTTP.
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''' e a  '''memória ''cache'' do navegador'''<!--, acesso a '''arquivos HTML grandes''' e '''arquivos HTML com objetos incluídos'''-->.


==Pedido e Resposta HTTP==
==Pedido e Resposta HTTP==


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


;Procedimentos:
;Procedimentos:
#Inicie o navegador;
#Verifique com '''ifconfig''' a configuração de sua interface de rede;
#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. ;
#Inicie o navegador '''Firefox''' e não abra nenhuma página Web;
#Inicie o Wireshark, em seguida selecione a '''placa de rede''' e nas '''opções de captura''' selecione o '''filtro http''', de tal forma que apenas as mensagens HTTP capturadas serão exibidas na janela de listagem de pacotes. ;
#Inicie a captura de pacotes
#Inicie a captura de pacotes
#Digite o seguinte URL no navegador http:200.17.101.9/redes/redes1.html;
#Digite no navegador a URL para acessar o seu servidor Web com a página padrão ou uma página HTML simples;
#Pare a captura de pacotes.
#Pare a captura de pacotes.


Linha 33: Linha 34:
#Qual o número da porta TCP utilizada no seu computador e pelo servidor?
#Qual o número da porta TCP utilizada no seu computador e pelo servidor?
#Qual o endereço MAC do seu computador?
#Qual o endereço MAC do seu computador?
#É possível veridficar o MAC do servidor?
#Qual o código de ''status'' retornado do servidor para o seu navegador?
#Qual o código de ''status'' retornado do servidor para o seu navegador?
#Quando o arquivo em HTML que você baixou foi modificado no servidor pela última vez?
#Quando o arquivo em HTML que você baixou foi modificado no servidor pela última vez?
#Quantos bytes de conteúdo são baixados pelo seu navegador?  
#Quantos bytes de conteúdo são baixados pelo seu navegador?


==A Interação HTTP GET Condicional/Resposta==
==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.
A maioria dos navegadores web tem uma '''memória ''cache''''' que permite armazenar as últimas páginas acessadas. Desta forma o navegador 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:
;Procedimentos:
#Inicie o navegador web;
#Inicie o navegador web;
#Limpe o '''''cache''''' do seu navegador (Firefox: Editar -> Preferências -> Avançado);
#Limpe o '''''cache''''' do seu navegador:
#:Firefox: Preferências -> Privacidade e Segurança -> Cookies e Dados de Sites;
#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. ;
#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. ;
#Digite o seguinte URL no navegador http:200.17.101.9/redes/redes1.html;
#Digite a uma URL no navegador;
#Visualize os pacores capturados;
#Visualize os pacotes capturados;
#Pressione o botão “atualizar” no navegador;
#Pressione o botão “atualizar” no navegador;
#Pare a captura de pacotes.
#Pare a captura de pacotes.
Linha 58: Linha 59:
#O servidor retornou explicitamente o conteúdo do arquivo? Explique.
#O servidor retornou explicitamente o conteúdo do arquivo? Explique.
#Qual o tamanho da primeira e segunda mensagem de retorno do servidor?
#Qual o tamanho da primeira e segunda mensagem de retorno do servidor?
 
<!--
==Baixando Documentos Longos==
==Baixando Documentos Longos==


Linha 68: Linha 69:
#Inicie o Wireshark;
#Inicie o Wireshark;
#Digite o seguinte URL no navegador http:200.17.101.9/redes/redes2.html;
#Digite o seguinte URL no navegador http:200.17.101.9/redes/redes2.html;
#Atualize a página no navegador;
#Pare a captura de pacotes e selecione o filtro '''http''' para que apenas as mensagens HTTP seja exibidas.
#Pare a captura de pacotes e selecione o filtro '''http''' para que apenas as mensagens HTTP seja exibidas.


;Análise dos pacotes capturados:
;Análise dos pacotes capturados:
#Verifique a mensagem GET e a resposta do servidor;
#Verifique a primeira mensagem GET e a resposta do servidor;
#Verifique a carga útil (''Content-Length'') da resposta HTTP, que é o arquivo HTML completo;
#Verifique a carga útil (''Content-Length'') da resposta HTTP, que é o arquivo HTML completo;
#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''.
#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''.
#Verifique a segunda mensagem GET e a resposta do servidor.


;Perguntas:
;Perguntas:
Linha 82: Linha 85:
#O que explica a diferença entre a primeira e segunda requisições?
#O que explica a diferença entre a primeira e segunda requisições?


===Documentos HTML com Objetos Incluídos===
;Análise dos pacotes TCP capturados:
#Modifique o filtro de análise para visualizar pacotes TCP e porta 80;
#Verifique a abertura de conexão TCP que precedeu a mensagem GET;
#Verifique a transferência do arquivo longo pelo TCP, identificando os segmentos com dados e o número de sequência utilizados;
#Verifique os reconhecimentos dos dados recebidos;
#Verifique o encerramento da conexão TCP.


Agora que vimos como o Wireshark mostra o tráfego capturado para arquivos em HTML grandes, nós podemos observar o que acontece quando o seu browser baixa um arquivo com objetos incluídos, no nosso exemplo, imagens que estão armazenadas em outros servidores. Faça o seguinte:
==Documentos HTML com Objetos Incluídos==
#inicie o navegador web;
 
#limpe o cache do seu navegador;
Vamos observar o que acontece quando o seu navegador baixa um arquivo com objetos incluídos, como por exemplo, uma figura.
#inicie o Wireshark;
 
#digite o URL no navegador http://www.sj.ifsc.edu.br/~odilson/RED29004/RED29004_arq3.html seu navegador deve exibir um arquivo pequeno em HTML com duas imagens incluídas. Estas duas imagens estão referenciadas no arquivo em HTML. Isto é, as imagens não estão no arquivo em HTML, ao invés disso, há um URL para cada imagem no arquivo em HTML. Como discutido no livro, seu navegador terá que baixar estas imagens dos locais correspondentes. A imagem da esquerda, '''redesWL_network.jpeg''', está em ibxk.com.br. A imagem da direita, '''as-redes-sociais-como-instrumento-de-manipulacao-da-consciencia-coletiva.html.jpg''', está em lounge.obviousmag.org;
;Procedimentos:
#pare a captura de pacotes, e digite “http” na caixa de texto de especificação de filtro, para que apenas as mensagens HTTP seja exibidas.
#Inicie o navegador web;
#Limpe o '''''cache''''' do seu navegador;
#Inicie o Wireshark;
#Digite o seguinte URL no navegador http:200.17.101.9/redes/redes3.html;
#Pare a captura de pacotes e selecione o filtro '''http''' para que apenas as mensagens HTTP seja exibidas.


Responda às seguintes questões:
;Perguntas:
#Quantas mensagens HTTP GET foram enviadas pelo seu navegador?
#Quantas mensagens HTTP GET foram enviadas pelo seu navegador? Explique.
#Para quais endereços na Internet estas mensagens foram enviadas?
#Veja como cada figura foi transportada nos segmentos TCP. Houve fragmentação?
#Você consegue dizer se o seu navegador baixou as duas imagens em seqüência, ou se foram baixadas dos dois locais distintos em paralelo? Explique.


===Autenticação HTTP===
===Autenticação HTTP===
Linha 126: Linha 137:
#Que tipos de campos são mais presentes nesse tipo de mensagens?
#Que tipos de campos são mais presentes nesse tipo de mensagens?
#Você consegue identificar o conteúdo de alguma nas mensagens ssl?
#Você consegue identificar o conteúdo de alguma nas mensagens ssl?
-->


====Referências====
<references />


----
----
--[[Usuário:Evandro.cantu|Evandro.cantu]] ([[Usuário Discussão:Evandro.cantu|discussão]]) 16h36min de 23 de abril de 2015 (BRT)
[[Usuário:Evandro.cantu|Evandro.cantu]] ([[Usuário Discussão:Evandro.cantu|discussão]]) 17h40min de 26 de abril de 2021 (-03)
----
----


[[Categoria:Redes de Computadores]]
[[Categoria:Redes de Computadores]]

Edição atual tal como às 12h23min de 3 de maio de 2021

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 e a memória cache do navegador.

Pedido e Resposta HTTP

Vamos iniciar a nossa exploração do HTTP baixando um arquivo em HTML simples.

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 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 no navegador a URL para acessar o seu servidor Web com a página padrão ou uma página HTML simples;
  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. Qual o código de status retornado do servidor para o seu navegador?
  8. Quando o arquivo em HTML que você baixou foi modificado no servidor pela última vez?
  9. 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 navegador 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: Preferências -> Privacidade e Segurança -> Cookies e Dados de Sites;
  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 a uma URL no navegador;
  5. Visualize os pacotes 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?

Referências


Evandro.cantu (discussão) 17h40min de 26 de abril de 2021 (-03)