UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Redes de Computadores I Nível de Aplicação (HTTP) Prof. Helcio Wagner da Silva . – p.1/24 Introdução A WWW (World Wide Web) teve início em 1989 no CERN (Conseil Européen pour la Recherche Nucléaire), com a proposta do físico Tim Berners-Lee. Estrutura arquitetônica que permite o acesso a documentos de hipertexto espalhados mundo afora. . – p.2/24 Introdução O objetivo era permitir que cientistas de diferentes nacionalidades colaborassem entre si trocando relatórios, plantas, desenhos, fotos e outros documentos. Em 1994, o CERN e o MIT criaram o W3C (World Wide Web Consortium), voltado ao desenvolvimento da Web, a padronização dos protocolos e a interoperabilidade. A Web compara-se, em importância, a invenções como o telefone, o rádio e a TV; diferentemente dos dois últimos, porém, ela funciona sob demanda. . – p.3/24 Objetos Web O conteúdo da Web é estruturado em Objetos. arquivo HTML arquivo−base 05 Objetos imagem JPEG imagem JPEG imagem JPEG imagem JPEG Acesso via URL (Universal Resource Locator). Exemplo: www.someSchool.edu/someDept/picture.gif www.someSchool.edu → nome do host someDept/picture.gif → path . – p.4/24 Transferência de Objetos É usado o HTTP (HyperText Transfer Protocol). requ isiçã o HT resp osta HTT o çã i s i qu re TP P P T T H P TT H ta s o p s e r . – p.5/24 Características do HTTP É um protocolo do tipo stateless: Isto é, ele não guarda o estado do cliente. Faz uso dos serviços disponibilizados pelo TCP: Mais precisamente, os Servidores HTTP usam a porta 80 do TCP. Há atualmente duas versões: o HTTP/1.0 (RFC 1945) e o HTTP/1.1 (RFC 2616). A diferença entre o HTTP/1.0 e o HTTP/1.1 é que este último faz uso de conexões TCP persistentes. Ambas versões são compatíveis entre si. . – p.6/24 Conexões Transientes x Persistentes Servidor Web Browser arquivo HTML imagem JPEG Servidor Web Browser arquivo HTML imagem JPEG imagem JPEG imagem JPEG imagem JPEG imagem JPEG . – p.7/24 Acelerando a Transferência O HTTP/1.0 usa paralelismo de conexões TCP: Os vários Objetos ligados a um documento-base são descarregados simultaneamente através de várias conexões TCP. O HTTP/1.1 usa a técnica de pipelining: Nessa técnica, uma requisição para o Objeto N não precisa esperar pela resposta ao Objeto N − 1. . – p.8/24 Mercado de Servidores Web (2007) . – p.9/24 Formato da Requisição HTTP método sp URL nome do campo : de cabeçalho versão valor cr lf valor cr lf cr lf ... sp nome do campo : de cabeçalho cr lf corpo da entidade (usado no método POST) linhas de cabeçalho linha de requisição . – p.10/24 Exemplo de Requisição HTTP GET /someDir/page.html HTTP/1.1 Host: www.someSchool.edu Connection: close User-agent: Mozilla/4.0 Accept-language: fr (extra carriage return, line feed) . – p.11/24 Formato da Resposta HTTP versão sp cod. status sp nome do campo : de cabeçalho frase cr lf valor cr lf ... valor cr lf nome do campo : de cabeçalho cr lf corpo da entidade linhas de cabeçalho linha de status . – p.12/24 Exemplo de Resposta HTTP HTTP/1.1 200 OK Connection: close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 09:23:24 GMT Content-Length: 6821 Content-Type: text/html (data data data data data data ...) . – p.13/24 Códigos de Status e Frases Correspondentes 1xx: informação. Ex.: 100 Continue → o servidor concorda em atender a requisição do cliente. 2xx: sucesso. Ex.: 200 OK → requisição bem-sucedida; 204 No Content → sem conteúdo. 3xx: redirecionamento. Ex.: 301 Moved Permanently → a página foi removida; 304 Not Modified → a página no cache ainda é válida. 4xx: erro do cliente. Ex.: 403 Forbidden → página proibida; 404 Not Found → página não encontrada. 5xx: erro no servidor. Ex.: 500 Internal Server Error → erro interno no servidor; 503 Service Temporarily Unavailable → tente mais tarde. . – p.14/24 HTTP Usado para Autenticação Primitiva Servidor Web Browser requisição usuário + senha resposta HTTP requisição resposta HTTP 401 Authorization Required WWW−Authenticate: (como será feita a autenticação) Authentication: usuário + senha HTTP requisição resposta HTTP HTTP HTTP . – p.15/24 Cookies Criados pela Netscape e definidos na RFC 2109, permitem armazenar a informações de clientes. Possuem até 4KB e têm até cinco campos. Exemplos: toms-casino.com / CustomerID=497793521 15-10-02 17:00 Yes joe-store.com / Cart=1-00501;1-07031; 2-13721 11-10-02 14:22 No aportal.com / Prefs=Stk:SUNW+ORCL; Spt:Jets 31-12-10 23:59 No sneaky.com / UserID=3627239101 31-12-12 23:59 No . – p.16/24 Como Funcionam os Cookies www.toto.com Servidor Web Browser requisição HTTP resposta HTTP 1678453 ... www.toto.com Set−cookie: 1678453 Cookie: 1678453 requisição HTTP resposta HTTP . – p.17/24 Cache Web Até 1998, 75 % do tráfego que circulava pela Internet era proveniente da Web. As estratégias usadas para diminuir o tráfego devido ao acesso a páginas Web podem ser classificadas como Cache Web. A Cache Web pode ser implementada: No cliente (navegador) GET Condicional. Na rede Servidor Proxy Web. . – p.18/24 GET Condicional Servidor Web Browser GET /fruit/kiwi.gif HTTP/1.0 User−agent: Mozilla/4.0 HTTP/1.0 200 OK Date: Web, 12 Aug 1998 15:39:29 Server: Apache/1.3.0 (Unix) Last−Modified: Mon, 22 Jan 1998 09:23:24 Content−Type: image/gif (data data data data data ...) ... cache GET /fruit/kiwi.gif HTTP/1.0 User−agent: Mozilla/4.0 If−modified−since: Mon, 22 Jan 1998 09:23:24 HTTP/1.0 304 Not Modified Date: Wed, 19 Aug 1998 15:39:29 Server: Apache/1.3.0 (Unix) . – p.19/24 Servidor Proxy req uis içã browser P oH o TT res ã isiç P po sta HT r Servidor Web req uis uis P o p s e T HT p T HT sta a ost res P req P u req TP o içã T HT T HT Servidor Proxy res içã po oH sta TT P HT TP browser Servidor Web . – p.20/24 Servidor Proxy: Estudo de Caso Servidores Web Dados: 15 requisições/s. Internet pública Objetos de 100 Kbits, em média. atraso na Internet de 2s. Enlace de 1,5 Mbps Rede institucional Conclusões: Carga na LAN = 0,15 (ou 15 %) LAN de 10 Mbps Carga no enlace = 1,00 (ou 100 % !!!) . – p.21/24 Alternativas de Projeto Possíveis Servidores Web Alternativa # 01: Internet pública Enlace de 1,5 Mbps Aumentar a capacidade do enlace de 1,5 Mbps para 10 Mbps. Alternativa # 02: Rede institucional Instalar um Servidor Proxy na LAN. LAN de 10 Mbps . – p.22/24 Optando pela Alternativa # 02 Servidores Web originais Suposição: Internet pública Enlace de 1,5 Mbps 40 % das requisições são atendidas pelo Proxy. Conclusão: Rede institucional Carga no enlace = 0,60 (ou 60 %) LAN de 10 Mbps Servidor Proxy . – p.23/24 Optando pela Alternativa # 02 Servidores Web originais Considerações adicionais: Atraso na LAN ≈ 10 ms Novo atraso no enlace ≈ 10 ms Internet pública Conclusão: Enlace de 1,5 Mbps Atraso médio ≈ 0,4 x (0,010 s) + 0,60 x (2,0 + 0,010 + 0,010) ≈ 1,25 s Rede institucional LAN de 10 Mbps Servidor Proxy Valor inferior ao atraso da Internet. . – p.24/24