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 • Dois tipos de mensagem http: pedido, resposta • Mensagem de pedido http: – ASCII (formato legível por humanos) Redes de Computadores I – Prof. Mateus Raeder Mensagem http de requisição linha do pedido (comandos GET, POST, HEAD) linhas do cabeçalho Carriage return, line feed indica fim de mensagem 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) Redes de Computadores I – Prof. Mateus Raeder Mensagem http de requisição Formato geral de uma mensagem de requisição Redes de Computadores I – Prof. Mateus Raeder Enviando formulários • Método POST – Página WWW normalmente possui um formulário de entrada – Dados preenchidos são enviados no “entity body” Redes de Computadores I – Prof. Mateus Raeder Tipos de métodos • 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 Redes de Computadores I – Prof. Mateus Raeder Mensagem http de resposta linha de status (protocolo, código de status, frase de status) linhas de cabeçalho dados, p.ex., arquivo html solicitado 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 . Redes de Computadores I – Prof. Mateus Raeder Mensagem http de resposta (2) Formato geral de uma mensagem de RESPOSTA Redes de Computadores I – Prof. Mateus Raeder Códigos de status da resposta http • 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. Redes de Computadores I – Prof. Mateus Raeder HTML (HyperText Markup Language) • 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 Redes de Computadores I – Prof. Mateus Raeder Encadeamento de referências • 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> Redes de Computadores I – Prof. Mateus Raeder Interação usuário-servidor: cookies • 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á Redes de Computadores I – Prof. Mateus Raeder 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 Cookie file server usual http request msg usual http response + ebay: 8734 Cookie file amazon: 1678 ebay: 8734 Set-cookie: 1678 usual http request msg cookie: 1678 usual http response msg server creates ID 1678 for user cookiespecific action one week later: Cookie file amazon: 1678 ebay: 8734 usual http request msg cookie: 1678 usual http response msg cookiespectific action Redes de Computadores I – Prof. Mateus Raeder Interação usuário-servidor: GET condicional • 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!!! GET CONDICIONAL Redes de Computadores I – Prof. Mateus Raeder 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 • 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. Redes de Computadores I – Prof. Mateus Raeder Cache WWW origin server Proxy server client client origin server Redes de Computadores I – Prof. Mateus Raeder Por que usar cache WWW ? • 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. 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 • 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 FTP user interface user at host FTP client local file system file transfer FTP server remote file system Redes de Computadores I – Prof. Mateus Raeder FTP: conexões separadas para controle e dados • Cliente ftp contata servidor ftp na porta 21, especificando TCP como protocolo de transporte. TCP control connection port 21 – 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 FTP client TCP data connection port 20 FTP server Controle: persistente Dados: não-persistente corrente e autenticação realizada. Redes de Computadores I – Prof. Mateus Raeder FTP: comandos e respostas • Comandos típicos: • Códigos de retorno típicos – Enviados em texto ASCII pelo canal de controle. – USER nome – PASS senha – LIST devolve lista de arquivos no diretório corrente – RETR arquivo recupera (lê) arquivo remoto – STOR arquivo armazena (escreve) arquivo no host remoto. – 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 Redes de Computadores I – Prof. Mateus Raeder Exercícios 1. Por que o HTTP e o FTP rodam em cima do TCP e não sobre UDP? 2. Por que se diz que o FTP envia informações de controle “fora da banda”? 3. 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