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)
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
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.
Objetos Web
O conteúdo da Web é estruturado em Objetos.
05 Objetos arquivo−base arquivo HTML 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
Transferência de Objetos
É usado o HTTP (HyperText Transfer Protocol).
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.
Conexões Transientes x Persistentes
Browser Servidor Web Browser Servidor Web arquivo HTML imagem imagem JPEG imagem JPEG JPEG arquivo HTML imagem JPEG imagem JPEG imagem JPEGAcelerando 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.
Formato da Requisição HTTP
(usado no método POST) corpo da entidade
método sp URL sp versão
...
linhas de cabeçalho linha de requisição nome do campo de cabeçalho : valor cr lf lf cr lf cr nome do campo de cabeçalho : valor cr lfExemplo de Requisição HTTP
GET /someDir/page.html HTTP/1.1 Host: www.someSchool.edu Connection: close User-agent: Mozilla/4.0 Accept-language: frFormato da Resposta HTTP
sp
...
cod. status sp frase
corpo da entidade linhas de cabeçalho linha de status versão lf cr nome do campo de cabeçalho : valor cr lf nome do campo de cabeçalho : valor cr lf lf cr
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
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
HTTP Usado para Autenticação Primitiva
requisição HTTP requisição HTTP resposta HTTP resposta HTTP resposta HTTP 401 Authorization Required requisição HTTP usuário + senha WWW−Authenticate: Authentication: feita a autenticação) usuário + senha (como será Browser Servidor WebCookies
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
Como Funcionam os Cookies
resposta HTTP Set−cookie: 1678453 requisição HTTP requisição HTTP resposta HTTP Cookie: 1678453 www.toto.com...
Browser Servidor Web 1678453 www.toto.comCache 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
GET Condicional
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 (data data data data data ...)
Content−Type: image/gif
...
cache
If−modified−since: Mon, 22 Jan 1998 09:23:24
Browser Servidor
Web
GET /fruit/kiwi.gif HTTP/1.0 User−agent: Mozilla/4.0
HTTP/1.0 304 Not Modified
Date: Wed, 19 Aug 1998 15:39:29 Server: Apache/1.3.0 (Unix)
Servidor Proxy
Servidor Proxy Servidor Web Servidor Web requisição HTTP requisição HTTP resposta HTTP resposta HTTP requisição HTTP requisição HTTP resposta HTTP resposta HTTP browser browserServidor Proxy: Estudo de Caso
LAN de 10 Mbps Internet pública Servidores Web Enlace de 1,5 Mbps Rede institucional Dados: 15 requisições/s. Objetos de 100 Kbits, em média. atraso na Internet de 2s. Conclusões: Carga na LAN = 0,15 (ou 15 %) Carga no enlace = 1,00 (ou 100 % !!!)Alternativas de Projeto Possíveis
LAN de 10 Mbps Internet pública Servidores Web Enlace de 1,5 Mbps Rede institucional Alternativa # 01: Aumentar a capacidade do enlace de 1,5 Mbps para 10 Mbps. Alternativa # 02: Instalar um Servidor Proxy na LAN.Optando pela Alternativa # 02
LAN de 10 Mbps Servidor Proxy Internet pública Enlace de 1,5 Mbps Rede institucionalServidores Web originais
Suposição:
40 % das requisições são atendidas pelo Proxy.
Conclusão:
Carga no enlace = 0,60 (ou 60 %)
Optando pela Alternativa # 02
LAN de 10 Mbps Servidor Proxy Internet pública Enlace de 1,5 Mbps Rede institucionalServidores Web originais Considerações adicionais:
Atraso na LAN ≈ 10 ms 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 Valor inferior ao atraso da Internet.