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 Raeder

Encadeamento 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: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

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 nomePASS senhaLIST 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