Transcript Slide 1
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 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, line feed indica fim de mensagem (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 – .. bold (negrito) –
..título centrado ..
– .. • Vários formatos – listas de bullets, listas ordenadas, listas de definição – tabelas – frames Redes de Computadores I – Prof. Mateus RaederEncadeamento de referências
• Referências ... – a componentes do documento local clique para uma dica – a documentos no servidor local voltar ao sumário – a documentos em outros servidores saiba sobre a UNISINOS • Multimídia – imagem embutida: – imagem externa: imagem maior – vídeo Mpeg um bom filme – som feliz niver 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
Cookie file
ebay: 8734
Cookie file
amazon: 1678 ebay: 8734 one week later:
Cookie file
amazon: 1678 ebay: 8734 client server usual http request msg usual http response +
Set-cookie: 1678
server creates ID 1678 for user usual http request msg
cookie: 1678
usual http response msg cookie specific action usual http request msg
cookie: 1678
usual http response msg cookie spectific 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:
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
client
Cache WWW
origin server Proxy server 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.
institutional network public Internet 1.5 Mbps access link origin servers 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 user at host FTP user interface 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.
– 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”: corrente e autenticação realizada.
diretório FTP client TCP control connection port 21 TCP data connection port 20 Controle: persistente Dados: não-persistente FTP server Redes de Computadores I – Prof. Mateus Raeder
FTP: comandos e respostas
• Comandos 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ó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 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