estamos prontos
usar o Wireshark para investigar protocolos em operação. Neste laboratório, exploraremos
vários aspectos do
Protocolo HTTP: a interação GET / resposta básica, formatos de mensagem HTTP, recuperação
de grandes HTML
arquivos, recuperar arquivos HTML com objetos incorporados e autenticação e segurança
HTTP. Antes
Ao começar esses laboratórios, você pode querer revisar a Seção 2.2 do texto.
Vamos começar nossa exploração do HTTP baixando um arquivo HTML muito simples - um que
é muito curto, e não contém objetos incorporados. Faça o seguinte:
1. Inicie o seu navegador da web.
2. Inicie o sniffer de pacotes Wireshark, conforme descrito no laboratório introdutório (mas
não ainda começar a captura de pacotes). Digite "http" (apenas as letras, não as aspas) em
a janela de especificação de filtro de exibição, de modo que somente mensagens HTTP
capturadas exibido posteriormente na janela de listagem de pacotes. (Estamos interessados
apenas no HTTP protocolo aqui, e não quer ver a desordem de todos os pacotes capturados).
3. Espere um pouco mais de um minuto (vamos ver o porquê), e então comece o Wireshark
captura de pacotes.
4. Digite o seguinte no seu navegador
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html
Seu navegador deve exibir o arquivo HTML simples e de uma linha.
5. Pare a captura de pacotes Wireshark.
Sua janela do Wireshark deve ser semelhante à janela mostrada na Figura 1. Se você não
para executar o Wireshark em uma conexão de rede ativa, você pode baixar um rastreamento
de pacote que foi criado quando os passos acima foram seguidos.
O exemplo na Figura 1 mostra na janela de listagem de pacotes que duas mensagens HTTP
foram capturadas: a mensagem GET (do seu navegador para o servidor web gaia.cs.umass.edu)
e a mensagem de resposta do servidor para o seu navegador. A janela do conteúdo do pacote
mostra detalhes da mensagem selecionada (neste caso, a mensagem HTTP OK, que é
destacada na janela de listagem de pacotes). Lembre-se de que desde que a mensagem HTTP
foi transportada dentro de um segmento TCP, que foi transportado dentro de um datagrama
IP, que foi transportado dentro de um quadro Ethernet, o Wireshark exibe o Frame, Ethernet,
IP e TCP informações de pacotes também. Queremos minimizar a quantidade de dados não
HTTP exibidos (estamos interessado em HTTP aqui, e estará investigando esses outros
protocolos é mais tarde laboratórios), então certifique-se as caixas na extremidade esquerda
das informações de Quadro, Ethernet, IP e TCP têm um sinal de mais ou um ponto de
triângulo (o que significa que há informações ocultas, não exibidas), e a linha HTTP tem um
sinal de menos ou um triângulo apontando para baixo (o que significa que toda a informação
sobre a mensagem HTTP é exibido).
1. O seu navegador está executando a versão 1.0 ou 1.1 do HTTP? Qual versão do HTTP o
servidor está executando?
2. Que idiomas (se algum) seu navegador indica que pode aceitar para o servidor?
3. Qual é o endereço IP do seu computador? Do servidor gaia.cs.umass.edu?
4. Qual é o código de status retornado do servidor para o seu navegador?
5. Quando o arquivo HTML que você está recuperando foi modificado pela última vez no
servidor?
6. Quantos bytes de conteúdo estão sendo retornados ao seu navegador?
7. Ao inspecionar os dados brutos na janela de conteúdo do pacote, você vê algum cabeçalho
dentro dos dados que não são exibidos na janela de listagem de pacotes? Se sim, nomeie um. .
Na sua resposta à pergunta 5 acima, você pode ter ficado surpreso ao descobrir que o
documento que você acabou de recuperar foi modificado pela última vez dentro de um minuto
antes de você fazer o download do documento. Isso é porque (para esse arquivo em
particular), o servidor gaia.cs.umass.edu está definindo a hora da última modificação do
arquivo para ser a hora atual e está fazendo isso uma vez por minuto.Assim, se você esperar
um minuto entre os acessos, o arquivo parecerá ter sido modificado recentemente e,
portanto, o seu navegador baixará uma “nova” cópia do
o documento.
Lembre-se da Seção 2.2.6 do texto, que a maioria dos navegadores da Web realiza o cache de
objetos e, assim, executa um GET condicional ao recuperar um objeto HTTP.Antes de executar
as etapas abaixo, verifique se o cache do seu navegador está vazio. (Para fazer isso no Firefox,
selecione Ferramentas-> Limpar histórico recente e marque a caixa Cache ou, no Internet
Explorer, selecione Ferramentas-> Opções da Internet-> Excluir arquivo; essas ações
removerão os arquivos em cache do cache do navegador). Os seguintes:
Inicie o seu navegador da Web e verifique se o cache do seu navegador está limpo, como
discutido acima.
Iniciar o sniffer de pacotes Wireshark
Insira o seguinte URL no seu navegador
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html
Seu navegador deve exibir um arquivo HTML de cinco linhas muito simples.
5000
Insira rapidamente o mesmo URL no seu navegador novamente (ou simplesmente selecione
o botão Atualizar seu navegador)
Pare a captura de pacotes Wireshark e digite “http” na janela de especificação do filtro de
exibição, que apenas mensagens HTTP capturadas serão exibidas posteriormente na janela de
listagem de pacotes.
(Nota: Se você não conseguir executar o Wireshark em uma conexão de rede ativa, você
pode usar o httpethereal-trace-2 rastreamento de pacotes para responder as perguntas
abaixo; veja a nota de rodapé 1. Este arquivo de rastreamento foi reunidos ao executar as
etapas acima em um dos computadores do autor.)
Em nossos exemplos até agora, os documentos recuperados foram arquivos HTML simples e
curtos. Vamos em seguida, veja o que acontece quando baixamos um longo arquivo
HTML. Faça o seguinte:
Inicie o seu navegador da Web e verifique se o cache do seu navegador está limpo, como
discutido acima.
Iniciar o sniffer de pacotes Wireshark
Insira o seguinte URL no seu navegador
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html
Seu navegador deve exibir a extensa lista de direitos dos EUA.
Interrompa a captura de pacotes Wireshark e digite “http” na janela de especificação de
filtro de exibição, para que apenas as mensagens HTTP capturadas sejam exibidas.
(Observação: Se você não conseguir executar o Wireshark em uma conexão de rede ativa,
poderá usar o rastreamento de pacote httpethereal-trace-3 para responder às perguntas
abaixo; consulte a nota de rodapé 1. Esse arquivo de rastreio foi coletado durante as etapas
acima em um dos computadores do autor.)
Na janela de listagem de pacotes, você deve ver sua mensagem HTTP GET, seguida por uma
resposta TCP de vários pares à sua solicitação HTTP GET. Essa resposta de múltiplos pacotes
merece um pouco de explicação. Lembre-se da Seção 2.2 (veja a Figura 2.9 no texto) que a
mensagem de resposta HTTP consiste em uma linha de status, seguida por linhas de
cabeçalho, seguida por uma linha em branco, seguida pelo corpo da entidade. No caso do
nosso HTTP GET, o corpo da entidade na resposta é todo o arquivo HTML solicitado. No nosso
caso aqui, o arquivo HTML é bastante longo e a 4500 bytes é muito grande para caber em um
pacote TCP. A única resposta HTTP a mensagem é assim dividida em várias partes por TCP,
com cada parte sendo contida dentro de um separado Segmento TCP (veja a Figura 1.24 no
texto). Nas versões recentes do Wireshark, o Wireshark indica cada
Segmento TCP como um pacote separado e o fato de que a única resposta HTTP foi
fragmentada vários pacotes TCP são indicados pelo "segmento TCP de uma PDU remontada"
na coluna Informações da tela do Wireshark. Versões anteriores do Wireshark usavam a frase
“Continuação” para indicar que todo o conteúdo de uma mensagem HTTP foi quebrado em
vários segmentos TCP. Aqui que não há mensagem "Continuação" em HTTP!
Agora que vimos como o Wireshark exibe o tráfego de pacotes capturados para grandes
arquivos HTML, podemos observar o que acontece quando o navegador faz o download de um
arquivo com objetos incorporados, ou seja, um arquivo que inclui outros objetos (no exemplo
abaixo, arquivos de imagem ) armazenados em outro (s) servidor (es).
Faça o seguinte:
Inicie o seu navegador da Web e verifique se o cache do seu navegador está limpo, como
discutido acima.
Iniciar o sniffer de pacotes Wireshark
Insira o seguinte URL no seu navegador
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html
Seu navegador deve exibir um arquivo HTML curto com duas imagens. Essas duas imagens são
referenciadas no arquivo HTML base. Ou seja, as imagens em si não estão contidas no HTML;
em vez disso, as URLs das imagens estão contidas no arquivo HTML baixado. Como discutido
no livro, seu navegador terá que recuperar esses logotipos dos sites indicados. O logotipo de
nosso editor é recuperado no site www.aw-bc.com. A imagem da capa do nosso quinto
edição (uma das nossas capas favoritas) é armazenada em manic.cs.umass.edu
servidor. Interrompa a captura de pacotes Wireshark e digite “http” na janela de
especificação de filtro de exibição, para que apenas as mensagens HTTP capturadas sejam
exibidas.
(Nota: Se você não conseguir executar o Wireshark em uma conexão de rede ativa, você
pode usar o rastreamento de pacotes httpethereal-trace-4 para responder às perguntas
abaixo; ver nota de rodapé 1. Este arquivo de rastreamento foi recolhida durante a execução
dos passos acima em um
dos computadores do autor.)
5 Autenticação HTTP
Por fim, vamos tentar visitar um site protegido por senha e examinar a sequência de
mensagens HTTP trocadas por esse site. O URL
http://gaia.cs.umass.edu/wiresharklabs/protected_pages/HTTP-wireshark-file5.html
é protegido por senha. O nome de usuário é
“wireshark-students” (sem as aspas) e a
senha é “network” (novamente, sem as aspas).
Então, vamos acessar esse site "protegido" protegido por senha. Faça o seguinte:
Verifique se o cache do seu navegador está limpo, como discutido acima, e feche o
navegador. Então, inicie seu navegador
Iniciar o sniffer de pacotes Wireshark
Insira o seguinte URL no seu navegador
http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wiresharkfile5.html
Digite o nome de usuário e a senha solicitados na caixa pop-up.
Interrompa a captura de pacotes Wireshark e insira “http” na janela de especificação de
filtro de exibição, para que somente as mensagens HTTP capturadas sejam exibidas
posteriormente na janela de listagem de pacotes.
(Nota: Se você não conseguir rodar o Wireshark em uma conexão de rede ativa, você pode
usar o rastreamento de pacotes httpethereal-trace-5 para responder as perguntas abaixo;
consulte a nota de rodapé 2. Esse arquivo de rastreio foi reunido durante as etapas acima em
um dos computadores do autor.)
Agora vamos examinar a saída do Wireshark. Você pode querer primeiro ler a autenticação
HTTP revisando o material de fácil leitura em “HTTP Access Authentication Framework” em
http://frontier.userland.com/stories/storyReader$2159