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
Download

Cliente - Unisinos