43
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)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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 odiretório corrente do usuário

Limita o número de sessões que um servidor podemanter

Page 2: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Transferência de arquivos (FTP)

Funcionamento do FTP (fonte: Kurose)

Page 3: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Transferência de arquivos (FTP)

Comandos enviados em ASCII (7 bits) Exemplos de comandos

USER <username> PASS <password> LIST RETR <filename> STOR <filename>

Page 4: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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

Page 5: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Analogia com a correspondência por correio (fonte: Kurose)

Page 6: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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

Page 7: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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

Page 8: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Correio eletrônico

Sistema de correio da Internet

Page 9: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Correio eletrônico - SMTP

Descrito na RFC 5321 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 serdireta ou indireta

Page 10: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Correio eletrônico - SMTP

Funcionamento do SMTP (fonte: Kurose)

Page 11: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Correio eletrônico - SMTP

Utiliza comandos para fazer a comunicaçãoentre servidores

Exemplos de comandos HELO MAIL FROM RCPT TO DATA QUIT VRFY

Page 12: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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: <[email protected]>

S: 250 [email protected]... Sender ok

C: RCPT TO: <[email protected]>

S: 250 [email protected] ... Recipient ok

C: DATA

S: 354 Enter mail, end with "." on a line by itself

C: From: [email protected]

C: To: [email protected]

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

Page 13: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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

Page 14: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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: <[email protected]>

S: 250 [email protected]... Sender ok

C: RCPT TO: <[email protected]>

S: 250 [email protected] ... Recipient ok

C: DATA

S: 354 Enter mail, end with "." on a line by itself

C: From: [email protected]

C: To: [email protected]

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

Page 15: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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

Page 16: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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: [email protected]

To: [email protected]

Subject: Teste

Teste de envio de correio.

Page 17: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Envelopes e mensagens (fonte: Tanenbaum)

Page 18: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Correio eletrônico - MIME

Todos os objetos são colocados em uma únicamensagem

RFC 5321 não prevê o envio de imagens, áudioe 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:

Page 19: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Correio eletrônico - MIME

From: [email protected]

To: [email protected]

Subject: Picture of yummy crepe.

MIME-Version: 1.0

Content-Transfer-Encoding: base64

Content-Type: image/jpeg

base64 encoded data .....

.........................

......base64 encoded data

Exemplo de mensagem MIME (fonte: Kurose)

Page 20: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Correio eletrônico

Comunicação entre o agente do usuário e oservidor 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

Page 21: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Correio eletrônico

Protocolos de correio eletrônico (fonte: Kurose)

Page 22: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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

Page 23: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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 pastasremotas e designar mensagens a elas

Page 24: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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 demensagens

Page 25: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Correio eletrônico

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

Page 26: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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)

Page 27: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Web

Partes do modelo da Web (fonte: Tanenbaum)

Page 28: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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

Page 29: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Web - HTTP

Usa dois tipos de conexões (configuráveis nobrowser) 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

Page 30: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Web - HTTP - mensagens

Dois tipos de mensagens Requisição Resposta

Usam ASCII

Page 31: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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

Page 32: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Web - HTTP - mensagens de requisição

GET /somedir/page.html HTTP/1.1

Host: www.someschool.edu

Connection: close

User-agent: Mozilla/4.0

Accept-language:fr

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

Page 33: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Web - HTTP - mensagens de requisição

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

Page 34: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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

Page 35: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Web - HTTP - mensagens de resposta

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

Exemplo de mensagem de resposta (fonte: Kurose)

Page 36: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Web - cookies

Usados na interação usuário-servidor Servidor HTTP não tem estado

Importante conhecer algumas características dousuário Para restringir acesso de usuário Para apresentar conteúdo em função da identidade do

usuário Outros

Definidos na RFC 2965 Boa parte dos sites comerciais usam cookies

Page 37: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

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

Page 38: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Web - cookies

Cliente Servidor

usual HTTP request msgusual HTTP response +

Set-cookie: 1678

usual HTTP request msgcookie: 1678

usual HTTP response msg

usual HTTP request msgcookie: 1678

usual HTTP response msg

especificaçãodo cookie

especificaçãodo cookie

servidorcria o ID 1678para o usuário

Cookie file

amazon: 1678ebay: 8734

Cookie file

ebay: 8734

Cookie file

amazon: 1678ebay: 8734

Uma semana depois:

Exemplo de uso de cookies (fonte: Kurose)

Page 39: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Web - cookies

Podem ser considerados violação de privacidade Por exemplo, pode-se montar um perfil do

comportamento de um usuário

Page 40: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Web - cache

Cache Web ou servidor proxy

Atende requisições HTTP em nome de umservidor 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

Page 41: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Web - cache

Exemplo de cache hierárquico (fonte: Tanenbaum)

Page 42: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Web - cache

Objeto armazenado inclui a data da últimamodificaçã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

Ver ex. do Kurose na pag. 83

Page 43: Transferência de arquivos (FTP)rubi/cursos/rc/Parte2c.pdf · Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol ) Descrito na RFC 959

Web - cache

Cache pode saber se os objetos estãoatualizados usando um “GET condicional” GET + cabeçalho If-Modified-Since: Se não foi modificado o servidor responde com corpo

de mensagem vazio