240 likes | 345 Views
Redes de Computadores I. Prof. Mateus Raeder. Universidade do Vale do Rio dos Sinos - São Leopoldo -. Sumário. Protocolos de aplicação HTTP (cont.) FTP Exercícios. Mensagem http de requisição. Dois tipos de mensagem http: pedido, resposta Mensagem de pedido http:
E N D
Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos- São Leopoldo -
Sumário • Protocolos de aplicação • HTTP (cont.) • FTP • Exercícios Redes de Computadores I – Prof. Mateus Raeder
Mensagem http de requisição Redes de Computadores I – Prof. Mateus Raeder • Dois tipos de mensagem http: pedido, resposta • Mensagem de pedido http: • ASCII (formato legível por humanos)
Mensagem http de requisição linha do pedido (comandos GET, POST, HEAD) GET /somedir/page.html HTTP/1.1 Host: www.unisinos.br Connection: close User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr (carriage return (CR),line feed(LF) adicionais) linhas do cabeçalho Carriage return, line feed indica fim de mensagem Redes de Computadores I – Prof. Mateus Raeder
Mensagem http de requisição Redes de Computadores I – Prof. Mateus Raeder Formato geral de uma mensagem de requisição
Enviando formulários Redes de Computadores I – Prof. Mateus Raeder • Método POST • Página WWW normalmente possui um formulário de entrada • Dados preenchidos são enviados no “entity body”
HTTP/1.0 GET POST HEAD Informa ao servidor para não incluir os objetos na resposta HTTP/1.1 GET, POST, HEAD PUT Envia arquivos no “entity body” para o local representado pela URL DELETE Apaga o arquivo especificado no local representado pela URL Tipos de métodos Redes de Computadores I – Prof. Mateus Raeder
Mensagem http de resposta linha de status (protocolo, código de status, frase de status) 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 …... Content-Length: 6821 Content-Type: text/html dados dados dados dados . linhas de cabeçalho dados, p.ex., arquivo html solicitado Redes de Computadores I – Prof. Mateus Raeder
Mensagem http de resposta (2) Redes de Computadores I – Prof. Mateus Raeder Formato geral de uma mensagem de RESPOSTA
Códigos de status da resposta http Redes de Computadores I – Prof. Mateus Raeder • Aparecem na primeira linha da mensagem de resposta cliente-servidor. Alguns códigos típicos: • 200 OK: Sucesso. Objeto pedido segue mais adiante nesta mensagem. • 301 Moved Permanently: Objeto pedido mudou de lugar, nova localização especificado mais adiante nesta mensagem (Location:) • 400 Bad Request: Mensagem de pedido não entendida pelo servidor. • 404 Not Found: Documento pedido não se encontra neste servidor. • 505 HTTP Version Not Supported:Versão de http do pedido não aceita por este servidor.
HTML (HyperText Markup Language) Redes de Computadores I – Prof. Mateus Raeder • HTML: uma linguagem simples para hipertexto • começou como versão simples de SGML • construção básica: cadeias de texto anotadas • Construtores de formato operam sobre cadeias • <b> .. </b> bold (negrito) • <H1 ALIGN=CENTER> ..título centrado .. </H1> • <BODY bgcolor=white text=black link=red ..> .. </BODY> • Vários formatos • listas de bullets, listas ordenadas, listas de definição • tabelas • frames
Encadeamento de referências Redes de Computadores I – Prof. Mateus Raeder • Referências <A HREF=LinkRef> ... </A> • a componentes do documento local <A HREF=“importante”> clique para uma dica </A> • a documentos no servidor local <A HREF=“../index.htm”> voltar ao sumário </A> • a documentos em outros servidores <A HREF=“http://www.unisinos.br”> saiba sobre a UNISINOS</A> • Multimídia • imagem embutida: <IMG SRC=“eclipse.gif”> • imagem externa: <A HREF=“eclipse.gif”> imagem maior </A> • vídeo Mpeg <A HREF=“ByeByeBrasil.mpg”> um bom filme </A> • som <A HREF=“http://www.sons.br/aniv.mp3”> feliz niver </A>
Interação usuário-servidor: cookies Redes de Computadores I – Prof. Mateus Raeder • Cookies são um mecanismo que sites utilizam para obter informações dos usuários (RFC 2109). • Suponhamos que o usuário entre em um site que use cookies • Servidor inclui no cabeçalho da msg de resposta Set-cookie: 1234567 • Cliente recebe mensagem e armazena cookie em uma lista • Nos pedidos seguintes (semanas depois, por ex.) cliente apresenta cookie nos pedidos posteriores Cookie: 1234567 • Servidor casa cookie apresentado com a info guardada no servidor. • Não sabe o nome do usuário, mas sabe que ele esteve lá
Interação usuário-servidor: cookies • Finalidades dos cookies: • Autenticação (não necessitando pedir usuário e senha a todo momento) • Lembrando preferências do usuário, opções anteriores, etc… (por exemplo, sites de compras com o carrinho cirtual do usuário) • Etc… Redes de Computadores I – Prof. Mateus Raeder
Cookies client server usual http request msg usual http response + Set-cookie: 1678 Cookie file Cookie file Cookie file amazon: 1678 ebay: 8734 amazon: 1678 ebay: 8734 ebay: 8734 cookie- specific action usual http request msg cookie: 1678 usual http request msg cookie: 1678 usual http response msg usual http response msg cookie- spectific action server creates ID 1678 for user entry in backend database access access one week later: Redes de Computadores I – Prof. Mateus Raeder
Interação usuário-servidor: GET condicional GET CONDICIONAL Redes de Computadores I – Prof. Mateus Raeder • Meta: não enviar objeto se cliente já tem (no cache) versão atual. • Reduz atrasos de extração de objetos • Diminui tráfego na internet • O objeto no servidor pode ter sido modificado desde que o cliente tem a cópia!!!
Interação usuário-servidor: GET condicional • Uma mensagem de quequisição HTTP é um GET condicional se: • 1) usa o método GET • 2) possui a linha de cabeçalho If-modified-since: • Cliente: especifica data da cópia no cache no pedido http If-modified-since:<date> • Servidor: resposta não contém objeto se cópia no cache é atual (na linha de status): HTTP/1.0 304 Not Modified Redes de Computadores I – Prof. Mateus Raeder
Cache WWW Redes de Computadores I – Prof. Mateus Raeder • Meta: atender pedido do cliente sem envolver servidor de origem. (Proxy) • Usuário configura browser: acessos WWW via proxy. • Cliente envia todos pedidos http ao proxy. • Se objeto está no cache do proxy, este o devolve imediatamente na resposta http. • Senão, solicita objeto do servidor de origem, armazena e depois devolve resposta http ao cliente.
Cache WWW origin server Proxy server HTTP request HTTP request client HTTP response HTTP response HTTP request HTTP response client origin server Redes de Computadores I – Prof. Mateus Raeder
Suposição: cache está “próximo” do cliente (por exemplo na mesma rede). Tempo de resposta menor: cache “mais próximo” do cliente Diminui tráfego aos servidores distantes Muitas vezes o gargalo é o enlace que liga a rede da instituição ou do provedor até a Internet. Por que usar cache WWW ? origin servers public Internet 1.5 Mbps access link institutional network 10 Mbps LAN institutional cache Redes de Computadores I – Prof. Mateus Raeder
FTP: o protocolo de transferência de arquivos FTP user interface FTP client FTP server local file system file transfer user at host remote file system Redes de Computadores I – Prof. Mateus Raeder • Transferir arquivo de/para hospedeiro remoto • Modelo cliente/servidor • cliente: lado que inicia transferência (pode ser de ou para o sistema remoto) • servidor: hospedeiro remoto • FTP - File Transfer Protocol: definido pelo RFC 959 • Servidor FTP: porta 21
Cliente ftp contata servidor ftp na porta 21, especificando TCP como protocolo de transporte. São abertas duas conexões TCP paralelas: Controle: troca informações de controle entre os hosts Dados: envia os dados FORA DA BANDA (diferente do HTTP) Dados: dados de arquivo de/para servidor. Servidor ftp mantém alguma informação de “estado”: diretório corrente e autenticação realizada. FTP: conexões separadas para controle e dados TCP control connection port 21 TCP data connection port 20 FTP client FTP server Controle: persistente Dados: não-persistente Redes de Computadores I – Prof. Mateus Raeder
Comandos típicos: Enviados em texto ASCII pelo canal de controle. USER nome PASS senha LIST devolve lista dearquivos no diretório corrente RETR arquivo recupera (lê) arquivo remoto STOR arquivo armazena(escreve) arquivo no host remoto. Códigos de retorno típicos código e frase de status (como para http). 331 Username OK, password required 125 data connection already open; transfer starting 425 Can’t open data connection 452 Error writing file FTP: comandos e respostas Redes de Computadores I – Prof. Mateus Raeder
Exercícios • Por que o HTTP e o FTP rodam em cima do TCP e não sobre UDP? • Por que se diz que o FTP envia informações de controle “fora da banda”? • Descreva como o cache Web pode reduzir o atraso na recepção de um objeto desejado. O cache Web reduzirá o atraso para todos os objetos requisitados por um usuário ou somente para alguns objetos? Por quê? Redes de Computadores I – Prof. Mateus Raeder