Redes de Computadores I

24
Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -

description

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: - PowerPoint PPT Presentation

Transcript of Redes de Computadores I

Page 1: Redes de  Computadores I

Redes de Computadores I

Prof. Mateus Raeder

Universidade do Vale do Rio dos Sinos- São Leopoldo -

Page 2: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Sumário

• Protocolos de aplicação– HTTP (cont.)– FTP

• Exercícios

Page 3: Redes de  Computadores I

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)

Page 4: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Mensagem http de requisição

GET /somedir/page.html HTTP/1.1Host: www.unisinos.brConnection: closeUser-agent: Mozilla/4.0Accept: text/html, image/gif,image/jpegAccept-language:fr

(carriage return (CR),line feed(LF) adicionais)

linha do pedido(comandos GET,

POST, HEAD)

linhas docabeçalho

Carriage return,line feedindica fim

de mensagem

Page 5: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Mensagem http de requisição

Formato geral de uma mensagem de requisição

Page 6: Redes de  Computadores I

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”

Page 7: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

• 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

Page 8: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Mensagem http de resposta

HTTP/1.1 200 OKConnection: closeDate: Thu, 06 Aug 1998 12:00:15 GMTServer: Apache/1.3.0 (Unix)Last-Modified: Mon, 22 Jun 1998 …...Content-Length: 6821Content-Type: text/html

dados dados dados dados .

linha de status(protocolo,

código de status,frase de status)

linhas decabeçalho

dados, p.ex.,arquivo html

solicitado

Page 9: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Mensagem http de resposta (2)

Formato geral de uma mensagem de RESPOSTA

Page 10: Redes de  Computadores I

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.

Page 11: Redes de  Computadores I

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

Page 12: Redes de  Computadores I

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>

Page 13: Redes de  Computadores I

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á

Page 14: Redes de  Computadores I

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…

Page 15: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Cookies

client server

usual http request msg

usual http response +Set-cookie: 1678

usual http request msgcookie: 1678

usual http response msg

usual http request msgcookie: 1678

usual http response msg

cookie-specificaction

cookie-spectificaction

servercreates ID

1678 for user

entry in backend

database

access

acce

ss

Cookie file

amazon: 1678ebay: 8734

Cookie file

ebay: 8734

Cookie file

amazon: 1678ebay: 8734

one week later:

Page 16: Redes de  Computadores I

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

Page 17: Redes de  Computadores I

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

Page 18: Redes de  Computadores I

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.

Page 19: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Cache WWW

client

Proxyserver

client

HTTP request

HTTP request

HTTP response

HTTP response

HTTP request

HTTP response

origin server

origin server

Page 20: Redes de  Computadores I

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 ?

originservers

public Internet

institutionalnetwork 10 Mbps LAN

1.5 Mbps access link

institutionalcache

Page 21: Redes de  Computadores I

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

file transferFTP

server

FTPuser

interface

FTPclient

local filesystem

remote filesystem

user at host

Page 22: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

• 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

FTPclient

FTPserver

TCP control connectionport 21

TCP data connectionport 20

Controle: persistenteDados: não-persistente

Page 23: Redes de  Computadores I

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

FTP: comandos e respostas

Page 24: Redes de  Computadores I

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ê?