Trabalho de laboratório sobre HTTP Redes de Computadores I - 2005/2006 LEIC - Tagus Park Semana de 26 a 30 de Setembro 1 Introdução O objectivo desta aula é a familiarização com conceitos básicos do protocolo HTTP. Serão observados o mecanismos de pedido resposta, o formato das mensagens HTTP e os mecanismos de redirecção e autenticação. Deverão seguir as instruções contidas neste guia e responder às questões colocadas. No final da aula o elemento com o menor número de aluno de cada grupo deverá responder às questões recorrendo à sua área privada do Fenix. Após terminar a introdução da ficha, deve chamar o docente, para que este possa verificar a entrega. Esta semana, excepcionalmente e por ser a primeira vez que as fichas electrónicas do Fenix são utilizadas na cadeira, deverão ainda entregar a ficha em papel, devidamente identificada. Devem identificar cada elemento do grupo através do seu número e nome e o grupo através do seu número de inscrição fornecido pelo sistema Fenix. As questões devem ser respondidas tendo em conta as informações apresentadas pela ferramenta ethereal. Nesta aula, uma vez que apenas se vai analisar o protocolo HTTP, é aconselhável a utilização do seguinte filtro: http. No início da aula devem lançar o browser Firefox, que deve permanecer aberto até ao final da aula. Ao ser lançado, o Firefox irá automaticamente contactar alguns dos websites presentes nos seus Bookmarks. Desta forma, o browser deverá ser lançado antes de começar a captura de pacotes, por forma a ignorar este tráfego. Cada uma das secções descreve uma experiência. Assim, para cada secção devem iniciar a captura de pacotes, utilizando o ethereal, seguir os passos indicados, parar a captura e responder às questões colocadas, analisando os pacotes capturados. Todas as questões são de escolha múltipla, devendo assinalar todas as respostas válidas. 2 Carregamento de uma página 2.1 Procedimento Limpar a cache do Firefox: edit, preferences, privacy, cache, clear. Aceder a http://inesc-0.tagus.ist.utl.pt/ ricardo/rci/ (repare na barra no fim) 1
2.2 Questões 1. Qual o comando HTTP utilizado para pedir a página? ( ) GET ( ) PUT ( ) HEAD ( ) DELETE 2. Qual o endereço IP do servidor? 93.136.166.90 93.136.128.66 72.20.41.200 72.20.28.30 3. Quantos pedidos HTTP foram efectuados? 6 4. Qual o código e mensagem de resposta enviados pelo servidor em resposta ao pedido do ficheiro / ricardo/rci/? 00 OK ( ) 302 Redirect ( ) 304 Not Modified 01 Authorization Required 03 Forbidden 04 Not Found 5. Quais as linguagens indicadas pelo seu browser como preferidas? ( ) Inglês ( ) Português do Brasil ( ) Português ( ) Tailandês 6. Qual o nome do software utilizado como servidor HTTP? ( ) Internet Information Server ( ) Google Web Server ( ) Apache ( ) Zeus 7. Qual o tamanho da página apresentada pelo browser?.38mb 56B 2
56Kb.35MB ( ) 734B ( ) 734Kb 3 Mecanismo de cache 3.1 Procedimento Limpar a cache do Firefox: edit, preferences, privacy, cache, clear. Aceder a http://inesc-0.tagus.ist.utl.pt/ ricardo/rci/ (repare na barra no fim) Imediatamente a seguir, carregar no botão de reload do Firefox. Esperar 2 minutos. Carregar novamente no botão de reload. 3.2 Questões 1. Quantos pedidos HTTP foram efectuados? 6 2. Quantas ligações TCP foram utilizadas? 6 3. Qual a versão do protocolo HTTP utilizada? ( ) 0.9.0.1 4. Assinale as afirmações verdadeiras: ( ) Foram utilizadas ligações persistentes. ( ) Foi utilizado o mecanismo de pipeline. ( ) A página foi modificada durante a experiência. 3
5. Quais os cabeçalhos utilizados para manter uma ligação? ( ) Host ( ) Accept ( ) Keep-Alive ( ) Accept-Encoding ( ) Connection ( ) If-Modified-Since ( ) If-Nome-Match 6. Quanto tempo tenta o cliente manter a ligação? ( ) 5s 0m 5s 00m ( ) 300s 7. Quanto tempo permite o servidor que a ligação permaneça aberta sem ser utilizada? ( ) 5s 0m 5s 00m ( ) 300s 8. Qual o código e mensagem de resposta enviados pelo servidor em resposta ao segundo pedido do ficheiro / ricardo/rci/ (primeira utilização do botão reload)? 00 OK ( ) 302 Redirect ( ) 304 Not Modified 01 Authorization Required 03 Forbidden 04 Not Found 9. A resposta do servidor ao segundo pedido foi diferente porque o cliente usou os cabeçalhos: ( ) Host ( ) Accept ( ) Keep-Alive ( ) Accept-Encoding ( ) Connection ( ) If-Modified-Since ( ) If-Nome-Match 10. Após a espera de 2 minutos, o servidor respondeu com 200 OK, porque... ( ) tem 200 ficheiros correctos. ( ) o ficheiro foi modificado no servidor. 4
( ) o ficheiro permaneceu inalterado. 4 Ficheiro de grandes dimensões 4.1 Procedimento Antes de iniciar a captura, voltar à página inicial. Seguir o link para a página grande. 4.2 Observação Observe o grande número de mensagens enviadas pelo servidor. O tamanho do objecto a enviar exige o envio de várias mensagens por parte do servidor. 4.3 Questões 1. Quantas das mensagens enviadas pelo servidor contém cabeçalhos HTTP? 6 5 Carregamento de uma página com imagens 5.1 Procedimento Na página anteriormente carregada, seguir o link para a página com imagens. 5.2 Questões 1. Quantos pedidos HTTP foram efectuados? 6 2. A página é constituída por quantos objectos? ( ) 6 ( ) 7 ( ) 9 0 5
3. Quantas ligações TCP foram utilizadas? ( ) 3 ( ) 5 4. As imagens foram carregadas em... ( ) série. ( ) paralelo. 6 Acesso com palavra chave 6.1 Procedimento Antes de iniciar a captura, voltar à página inicial. Seguir o link para a página protegida com password. Introduzir o utilizador rci e a palavra chave ola. 6.2 Questões 1. Quantos pedidos HTTP foram efectuados? 6 2. O que leva o browser a apresentar a janela a pedir as credenciais de autenticação? ( ) Código inserido no HTML da página. ( ) Um cabeçalho na resposta dada pelo servidor. ( ) O formato do link apresentado na página inicial. 3. Após o utilizador introduzir as credenciais correctas... ( ) o browser mostra a página que tinha recebido. ( ) o browser efectua novo pedido com um cabeçalho extra, ao que o servidor devolve a recurso protegido. ( ) o browser efectua novo pedido com um cabeçalho extra, ao que o servidor devolve o endereço onde pode ser encontrado o recurso protegido. 4. Em http://www.securitystats.com/tools/base64.php, pode encontrar uma ferramenta para converter de Base64 para ASCII e vice-versa. Utilizando essa ferramenta pode concluir que o método de transmissão de credenciais de autenticação... 6
( ) garante a sua confidencialidade. ( ) permite que estas sejam descobertas por terceiros que escutem o tráfego. 7 Códigos de erro 7.1 Procedimento Limpar a cache do Firefox: edit, preferences, privacy, cache, clear. Aceder a http://inesc-0.tagus.ist.utl.pt/ ricardo/rci (SEM a barra no fim). Seguir a link para a página que não existe. Voltar atrás e seguir a link para a página secreta. 7.2 Questões 1. Quais os códigos de estado/erro enviados nas várias respostas? 00 OK ( ) 301 Moved Permanently ( ) 302 Redirect ( ) 304 Not Modified 01 Authorization Required 03 Forbidden 04 Not Found 2. Qual a reacção do browser ao receber uma resposta com o código 301? ( ) Mostrar a página que tinha guardado em cache para este endereço. ( ) Exibir o HTML enviado na resposta 301. ( ) Carregar outra página utilizando o endereço fornecido num dos cabeçalhos da mensagem de resposta. ( ) Carregar outra página utilizando o endereço fornecido no HTML recebido na resposta. 8 Construção manual de um pedido HTTP 8.1 Procedimento Utilizando um cliente telnet simule um cliente HTTP 1.1. Efectue uma ligação ao servidor HTTP e solicite a página inicial, utilizando o mínimo de cabeçalhos e sem utilizar ligações persistentes. 8.2 Questões 1. Quais os cabeçalhos que utilizou? ( ) Host 7
( ) Accept ( ) Keep-Alive ( ) Accept-Encoding ( ) Connection ( ) If-Modified-Since ( ) If-Nome-Match Referências [1] Ethereal User s Guide, http://www.ethereal.com/docs/user-guide/ [2] Hypertext Transfer Protocol HTTP/1.1, http://www.ietf.org/rfc/rfc2616.txt Grupo N o :... Aluno N o... Nome... Turno:... PC:... Aluno N o... Nome... Aluno N o... Nome... Avaliado por :... em:... Classificação :... 8