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

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
 
(26 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 81: Linha 84:
#No segundo GET realizado, quantos segmentos TCP foram necessários para obtenção da resposta do servidor?
#No segundo GET realizado, quantos segmentos TCP foram necessários para obtenção da resposta do servidor?
#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?
;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.


==Documentos HTML com Objetos Incluídos==
==Documentos HTML com Objetos Incluídos==
Linha 94: Linha 104:


;Perguntas:
;Perguntas:
#Quantas mensagens HTTP GET foram enviadas pelo seu navegador?
#Quantas mensagens HTTP GET foram enviadas pelo seu navegador? Explique.
#Veja como cada figura foi transportada nos segmentos TCP. Houve fragmentação?


<!--
===Autenticação HTTP===
===Autenticação HTTP===


Linha 128: Linha 138:
#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)