Wireshark Captura de Protocolos da camada de aplicação Maicon de Vargas Pereira Camada de Aplicação Introdução HTTP (Hypertext Transfer Protocol) 2 Introdução Camada de Aplicação Suporta os protocolos que atendem diretamente as necessidades dos usuários A camada de aplicação faz a interface de comunicação entre a aplicação que solicitou a informação através da rede e o protocolo de aplicação Por exemplo: para enviar um e­mail, seu aplicativo cliente (ex:Outlook Express) entra em contato com o protocolo da camada de aplicação (ex: SMTP), que efetua a transmissão do mesmo Exemplos de Aplicações Correio Eletrônico A WEB Mensagem Instantânea Compartilhamento de Arquivos Jogos MultiUsuáios Telefonia IP VideoConferência 3 Principais protocolos da Camada de Aplicação HTTP (HyperText Transfer Protoco) SMTP (Simple Mail Transfer Protocol) DNS (Domain Name System) DHCP (Dynamic Host Configuration Protocol) SNMP (Simple Network Management Protocol) FTP (File Transfer Protocol) 4 HTTP (Hypertext Transfer Protocol) A Web e o HTTP O HTTP surgiu da necessidade de compartilhar informações na Internet. Informações essas que poderiam estar na forma de texto, som ou imagem Para que a transferência dessas informações fosse possível houve a necessidade de desenvolver uma forma padronizada de comunicação entre os clientes e os servidores web O protocolo HTTP foi implementado a partir de 1989 no CERN (European Center for High­Energy Physics) em Genebra, na Suíça Definido pelas RFCs 1945 e 2616 5 Estrutura do Protocolo HTTP Arquitetura cliente/servidor Objetos Conexões Cabeçalho 6 Estrutura do Protocolo HTTP Arquitetura cliente/servidor Cliente: browser que solicita, recebe e apresenta objetos da Web Servidor: envia objetos em resposta a pedidos Estrutura do Protocolo HTTP Objetos Uma página web é constituída por objetos Um objeto pode ser um arquivo HTML, uma imagem, um áudio, etc. A maioria das páginas web são constituídas de um arquivo­base HTML e diversos objetos relacionados • Se uma página contiver um texto HTML e cinco imagens JPG, ela então terá 6 objetos O arquivo­base referencia os outros objetos na página através de URLs (Universal Resource Locator) Cada URL tem dois componentes básicos: a identificação do servidor e a localização do objeto 7 Estrutura do Protocolo HTTP Conexões • Tipos: – Sem paralelismo: cliente envia uma nova requisição somente quando a resposta anterior for recebida – Com paralelismo: cliente envia várias requisições em sequência (pipelining)CP são fechadas a cada requisição e resposta • Conexões TCP consomem tempo de CPU, largura de banda e memória • As páginas web costumam ser compostas por diversos objetos Persistentes • Uma única conexão TCP é necessária • Essa conexão permanece aberta até que todos os objetos sejam transferidos • Tipos: – Sem paralelismo: cliente envia uma nova requisição somente quando a resposta anterior for recebida – Com paralelismo: cliente envia várias requisições em sequência (pipelining) 8 Estrutura do Protocolo HTTP Cabeçalho de Requisição Cabeçalho de Resposta Cabeçalho de Requisição Três seções: • Linha de Requisição – Método (exemplo: Get, Post, Head, Delete) – Caminho do objeto – Versão do protocolo HTTP • Linhas de Cabeçalho • Corpo da Entidade Cabeçalho de Resposta Três seções: • Linha de status – Versão do protocolo HTTP – Código de resposta (estado) – Frase • Linhas de Cabeçalho • Corpo da Entidade 9 Proxy/Cache Trata­se de uma entidade de rede instalada em uma dada organização que atende requisições HTTP em nome de um servidor de origem Objetivo: atender o cliente sem envolver o servidor Web originador da informação Tem seu próprio disco de armazenamento e mantém cópias de objetos recentemente requisitados Pode reduzir significativamente o tempo de resposta para a requisição de um cliente Pode reduzir significativamente o tráfego na Internet como um todo Cliente configura seu browser para que o mesmo primeiramente consulte ao proxy GET Condicional Embora possa reduzir os tempos de resposta do ponto de vista do usuário, fazer cache introduz um novo problema • A cópia de um objeto existente no cache pode estar desatualizada O HTTP tem um mecanismo que permite que um proxy verifique se seus objetos estão atualizados Esse mecanismo é chamado de GET Condicional (conditional GET) Uma mensagem de requisição HTTP é denominada uma mensagem GET condicional se: • Usar o método GET • Possuir uma linha de cabeçalho: If­Modified­Since 10 11 Referências Kurose, J.; Ross, K. Redes de Computadores e Internet: uma nova abordagem. 12