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).. p.5/24 requisição HTTP resposta HTTP requisição HTTP resposta HTTP
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 Browser Servidor Web Browser Servidor Web arquivo HTML arquivo HTML imagem JPEG 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 sp versão cr lf nome do campo de cabeçalho : valor cr lf nome do campo de cabeçalho... : valor cr lf 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 frase cr lf nome do campo de cabeçalho : valor cr lf nome do campo de cabeçalho... : valor cr lf 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 Browser Servidor Web usuário + senha requisição HTTP resposta HTTP requisição HTTP 401 Authorization Required WWW Authenticate: (como será feita a autenticação) Authentication: usuário + senha resposta HTTP requisição HTTP resposta 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 Browser Servidor Web requisição HTTP resposta HTTP Set cookie: 1678453 Cookie: 1678453... www.toto.com 1678453. p.17/24 requisição HTTP resposta HTTP
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 Browser Servidor Web 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 Servidor Proxy Servidor Web Servidor Web requisição HTTP resposta HTTP requisição HTTP resposta HTTP requisição HTTP requisição HTTP resposta HTTP resposta HTTP browser browser. 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. Rede institucional Enlace de 1,5 Mbps LAN de 10 Mbps atraso na Internet de 2s. Conclusões: Carga na LAN = 0,15 (ou 15 %) Carga no enlace = 1,00 (ou 100 %!!!). p.21/24
Alternativas de Projeto Possíveis Servidores Web Alternativa # 01: Rede institucional Internet pública Enlace de 1,5 Mbps Aumentar a capacidade do enlace de 1,5 Mbps para 10 Mbps. Alternativa # 02: Instalar um Servidor Proxy na LAN. LAN de 10 Mbps. p.22/24
Optando pela Alternativa # 02 Servidores Web originais Suposição: Rede institucional Internet pública Enlace de 1,5 Mbps 40 % das requisições são atendidas pelo Proxy. Conclusão: LAN de 10 Mbps Servidor Proxy Carga no enlace = 0,60 (ou 60 %). p.23/24
Optando pela Alternativa # 02 Servidores Web originais Considerações adicionais: Atraso na LAN 10 ms Rede institucional Internet pública Enlace de 1,5 Mbps Novo atraso no enlace 10 ms Conclusão: Atraso médio 0,4 x (0,010 s) + 0,60 x (2,0 + 0,010 + 0,010) 1,25 s LAN de 10 Mbps Servidor Proxy Valor inferior ao atraso da Internet.. p.24/24