Você está na página 1de 42

Transferência de arquivos (FTP)

 Protocolo de transferência de arquivos (File


Transfer Protocol)
 Descrito na RFC 959
 Usa o TCP, a porta 21 (conexão de controle) e a
porta 20 (conexão de dados)
 Em uma mesma sessão, a cada transferência é
usada uma conexão diferente de dados
 Mantém informações de estado
 Associação com conta do usuário, controle sobre o
diretório corrente do usuário
 Limita o número de sessões que um servidor pode
manter
Transferência de arquivos (FTP)

Funcionamento do FTP (fonte: Kurose)


Transferência de arquivos (FTP)

 Comandos enviados em ASCII (7 bits)


 Exemplos de comandos
 USER <username>
 PASS <password>
 LIST
 RETR <filename>
 STOR <filename>
Correio eletrônico

 Sistema de correio da Internet composto de


 Agentes de usuário
 Servidores de correio ou agentes de transferência de
mensagens
 Protocolo simples de transferência de correio (Simple
Mail Transfer Protocol – SMTP)
 Protocolos de acesso a correio
Analogia com a correspondência por correio (fonte: Kurose)
Correio eletrônico

 Agentes de usuário
 Permitem que usuários leiam, respondam,
encaminhem, salvem e editem mensagens
 Ex.: Outlook, Eudora, Thunderbird, Mutt
 Servidores de correio
 Armazenam as mensagens
 Se comunicam para realizar a transferência das
mensagens
Correio eletrônico

 SMTP
 Transfere mensagens entre servidores de correio
 Transfere mensagens do agente de usuário para um
servidor de correio
 Daemon do sistema (processo executado em segundo
plano)
 Protocolos de acesso a correio
 Transferem mensagens do servidor de correio para o
agente de usuário
Correio eletrônico

Sistema de correio da Internet


Correio eletrônico - SMTP

 Descrito na RFC 2821


 Usa o TCP e a porta 25
 Mensagens enviadas em ASCII (7 bits)
 Uso de extensão ou de codificação para 8 bits
 Comunicação entre um cliente SMTP
(transmissor) e um servidor SMTP (receptor)
 Comunicação entre os servidores pode ser
direta ou indireta
Correio eletrônico - SMTP

Funcionamento do SMTP (fonte: Kurose)


Correio eletrônico - SMTP

 Utiliza comandos para fazer a comunicação


entre servidores
 Exemplos de comandos
 HELO
 MAIL FROM
 RCPT TO
 DATA
 QUIT
 VRFY
Exemplo de interação (telnet servidor.br 25)

S: 220 servidor.br
C: HELO cliente.br
S: 250 Hello cliente.br, pleased to meet you
C: MAIL FROM: <usuario@cliente.br>
S: 250 usuario@cliente.br... Sender ok
C: RCPT TO: <usuario@servidor.br>
S: 250 usuario@servidor.br ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: From: usuario@cliente.br
C: To: usuario@servidor.br
C: Subject: Teste
C:
C: Teste de envio de correio.
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 servidor.br closing connection
Correio eletrônico

 Correio eletrônico formado por


 Envelope
 Encapsula uma mensagem
 Contém as informações necessárias para o transporte da
mensagem
 Como no correio comum
 Mensagem
 Composta por cabeçalho e corpo
Exemplo de interação (telnet servidor.br 25)

S: 220 servidor.br
C: HELO cliente.br
S: 250 Hello cliente.br, pleased to meet you
C: MAIL FROM: <usuario@cliente.br>
S: 250 usuario@cliente.br... Sender ok
C: RCPT TO: <usuario@servidor.br>
S: 250 usuario@servidor.br ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: From: usuario@cliente.br
C: To: usuario@servidor.br
C: Subject: Teste
C:
C: Teste de envio de correio.
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 servidor.br closing connection
Correio eletrônico

 Correio eletrônico formado por


 Mensagem
 Campos de cabeçalho
 Exemplos:
 From:
 To:
 Subject:
 Received:
 Corpo
 Só diz respeito ao destinatário
Exemplo de mensagem

Received: from cliente.br by servidor.br; 16 Jul 06 10:30:01


GMT
Received: from maquina.cliente.br by cliente.br; 16 Jul 06
10:29:58 GMT
From: usuario@cliente.br
To: usuario@servidor.br
Subject: Teste

Teste de envio de correio.


Envelopes e mensagens (fonte: Tanenbaum)
Correio eletrônico - MIME

 Todos os objetos são colocados em uma única


mensagem
 RFC 822 não prevê o envio de imagens, áudio e
vídeo
 Solução → Estender o cabeçalho
 Extensões multiuso do correio da Internet
(Multipurpose Internet Mail Extensions – MIME)
 Definido nas RFCs 2045 e 2046
 Exemplos de novas linhas de cabeçalhos
 Content-Type:
 Content-Transfer-Encoding:
Correio eletrônico - MIME

Exemplo de mensagem MIME (fonte: Kurose)

From: alice@crepes.fr
To: bob@hamburger.edu
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg

base64 encoded data .....


.........................
......base64 encoded data
Correio eletrônico

 Comunicação entre o agente do usuário e o


servidor de correio
 Envio de mensagem: uso do SMTP
 Leitura de mensagem: uso de protocolo de acesso ao
correio
 Protocolos de acesso a correio mais comuns
 POP3
 IMAP
 HTTP
Correio eletrônico

Protocolos de correio eletrônico (fonte: Kurose)


Correio eletrônico - POP3

 Protocolo de correio (Post Office Protocol –


POP) versão 3
 Definido na RFC 1939
 Usa o TCP e a porta 110
 Modos
 Ler e apagar do servidor
 Divide as mensagens entre as máquinas usadas para
acessar o correio
 Ler e guardar no servidor
Correio eletrônico - POP3

 Exemplos de comandos
 User <username>
 Pass <password>
 List
 Retr <message number>
 Dele <message number>
 Quit
 Não provê um meio para o usuário criar pastas
remotas e designar mensagens a elas
Correio eletrônico - IMAP

 Protocolo de acesso a correio de Internet


(Internet Mail Access Protocol – IMAP)
 Definido na RFC 2060
 Usa o TCP e a porta 143
 Provê comandos que permitem que usuários
 Criem pastas
 Transfiram mensagens de uma para outra
 Agente do usuário pode obter componentes de
mensagens
Correio eletrônico

Comparação do POP3 com o IMAP (fonte: Tanenbaum)


Web

 Teia de alcance mundial (World Wide Web –


WWW)
 Web composta de
 Agentes de usuário para a Web (browsers)
 Servidores Web
 Protocolo de transferência de hipertexto (HyperText
Transfer Protocol – HTTP)
Web

Partes do modelo da Web (fonte: Tanenbaum)


Web - HTTP

 Descrito nas RFCs 1945 e 2616


 Usa o TCP e a porta 80
 Provê comandos que permitem que usuários
 Requisitem páginas Web
 Enviem páginas Web
 Enviem dados a um servidor
 Servidor não armazena informação de estado
Web - HTTP

 Usa dois tipos de conexões (configurável no


browser)
 Não persistentes
 Único objeto enviado por uma conexão TCP
 Maior alocação de recursos (buffers, variáveis etc.)
 Persistentes
 Mais atual
 Vários objetos podem ser enviados por uma conexão
TCP
 Pode-se usar conexões em série ou paralelas
 Configurável no browser
Web - HTTP - mensagens

 Dois tipos de mensagens


 Requisição
 Resposta
 Usam ASCII
Web - HTTP - mensagens de requisição

 Exemplos de comandos (métodos)


 GET
 Mais utilizado
 POST
 Corpo da entidade contém dados digitados em um
formulário
 HEAD
 Não manda o objeto requisitado
 Usado para depuração
 PUT
 Para enviar objetos ao servidor
 DELETE
 Para apagar objetos do servidor
Web - HTTP - mensagens de requisição

Exemplo de mensagem de requisição (fonte: Kurose)

GET /somedir/page.html HTTP/1.1


Host: www.someschool.edu
Connection: close
User-agent: Mozilla/4.0
Accept-language:fr
Web - HTTP - mensagens de requisição

Formato geral das mensagens de requisição HTTP (fonte: Kurose)


Web - HTTP - mensagens de resposta

 Corpo da entidade contém a página


 Servidor também envia um código de estado
 Exemplos de códigos
 200 OK
 301 Moved Permanently
 304 Not Modified
 400 Bad Request
 404 Not Found
 505 HTTP Version Not Supported
Web - HTTP - mensagens de resposta

Exemplo de mensagem de resposta (fonte: Kurose)

HTTP/1.1 200 OK
Connection: close
Date: Thu, 03 Jul 2003 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Sun, 5 May 2003 09:23:24 GMT
Content-Length: 6821
Content-Type: text/html

data data data data data ...


Web - cookies

 Usados na interação usuário-servidor


 Servidor HTTP não tem estado
 Importante conhecer algumas características do
usuário
 Para restringir acesso de usuário
 Para apresentar conteúdo em função da identidade do
usuário
 Outros
 Definidos na RFC 2109
 Boa parte dos sites atuais usam cookies
Web - cookies

 Cookie composto de
 Linha de cabeçalho de cookie na mensagem de
resposta HTTP
 Linha de cabeçalho de cookie na mensagem de
requisição HTTP
 Arquivo de cookies mantido no sistema final do usuário
e gerenciado pelo browser
 Banco de dados de apoio no site Web
Web - cookies

Exemplo de uso de cookies (fonte: Kurose)


Cliente Servidor
Cookie file usual HTTP request servidor
ebay: 8734 msg cria o ID 1678
usual HTTP response +
Set-cookie: 1678 para o usuário

Cookie file
usual HTTP request msg
amazon: 1678 especificação sso
cookie: 1678 ac e
ebay: 8734 do cookie
usual HTTP response

o s
es
Uma semana depois: msg

ac
Cookie file usual HTTP request
especificação
amazon: 1678 msg
do cookie
ebay: 8734 cookie:
usual HTTP 1678
response
msg
Web - cookies

 Podem ser considerados violação de privacidade


 Por exemplo, pode-se montar um perfil do
comportamento de um usuário
Web - cache

 Cache Web ou servidor proxy


 Atende requisições HTTP em nome de um
servidor Web de origem
 Usado principalmente por duas razões
 Diminuir o tempo de resposta a uma requisição Web
 Reduzir o tráfego na Internet
 Cache pode estar em
 ISPs
 Universidades
 Laboratórios
 Local
 Configuração feita no browser do usuário
Web - cache

Exemplo de cache hierárquico (fonte: Tanenbaum)


Web - cache

 Objeto armazenado inclui a data da última


modificação
 Funcionamento
 Cliente envia o pedido de um objeto para o cache
 Se o cache possui o objeto, envia o objeto ao cliente
 Se não, solicita o objeto do servidor original, armazena
o objeto e o envia ao cliente
 Ex.: Kurose pag. 79
 Cache pode saber se os objetos estão
atualizados usando um “GET condicional”
 GET + cabeçalho If-Modified-Since: