Redes de Computadores I
description
Transcript of Redes de Computadores I
Redes de Computadores I
Prof. Mateus Raeder
Universidade do Vale do Rio dos Sinos- São Leopoldo -
Redes de Computadores I – Prof. Mateus Raeder
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
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
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
• 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
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
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 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:
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
client
Proxyserver
client
HTTP request
HTTP request
HTTP response
HTTP response
HTTP request
HTTP response
origin server
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 ?
originservers
public Internet
institutionalnetwork 10 Mbps LAN
1.5 Mbps access link
institutionalcache
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
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
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
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ê?