Bcc361-2014-02 - p6 Camada de Aplicacao
Bcc361-2014-02 - p6 Camada de Aplicacao
Bcc361-2014-02 - p6 Camada de Aplicacao
Nome
4
Transporte
Universidade
Federal
de
Ouro
Preto
3
Rede
Departamento
de
Ciência
da
Computação
2
Enlace
1 Física
BCC361
2014/02
Agenda
• Introdução;
• DNS
(Domain
Name
System);
• Correio
Eletrônico;
• A
World
Wide
Web
(WWW).
2
BCC361
2014/02
Introdução;
DNS
(Domain
Name
System);
Correio
Eletrônico;
A
World
Wide
Web
(WWW).
INTRODUÇÃO 3
BCC361
2014/02
Introdução
Tópicos
• A
Camada
de
Aplicação;
• Arquitetura
de
aplicação
de
rede;
• Protocolos
da
camada
de
aplicação.
4
BCC361
2014/02
Introdução
5
BCC361
2014/02
Introdução
BCC361
2014/02
Introdução
7
BCC361
2014/02
Introdução
BCC361
2014/02
Introdução
BCC361
2014/02
Introdução
10
BCC361
2014/02
Introdução
BCC361
2014/02
DNS
(Domain
Name
System)
Tópicos
• Introdução;
• O
ambiente
de
nomes;
• Registros
de
recursos;
• Servidores
de
nomes.
13
BCC361
2014/02
DNS
(Domain
Name
System)
Introdução
• Imagine
acessar
os
sites
de
seu
interesse
através
do
IP*:
• UFOP:
200.131.208.21
(www.ufop.br);
• Terra:
200.154.56.80
(www.terra.com.br);
• UOL:
200.221.2.45
(www.uol.com.br);
• TwiRer:
199.59.150.39
(www.twiner.com);
• Google:
74.125.234.56
(www.google.com.br);
• Google:
74.125.234.49
(www.google.com);
• Problemas:
• Se
lembrar
de
cada
endereço
IP;
• Endereços
IP
podem
mudar;
BCC361
2014/02
DNS
(Domain
Name
System)
Introdução
• Na
ARPANET
havia
apenas
um
arquivo
que
con]nha
mapeamentos
Nome
/
IP
(hosts.txt):
• Para
poucos
hosts
isto
pode
funcionar;
• Mas
para
milhões
de
hosts
conectados
não;
15
BCC361
2014/02
DNS
(Domain
Name
System)
Introdução
• Funcionamento
básico:
• Uma
aplicação
faz
uma
chamada
a
um
procedimento
de
biblioteca
denominado
resolvedor,
passando
como
parâmetro
o
nome
a
ser
“resolvido”;
• O
resolvedor
envia
uma
consulta
contendo
o
nome
para
um
servidor
DNS
local;
• Este
servidor
retorna
com
o
endereço
IP
ao
resolvedor;
• O
resolvedor
repassa
o
endereço
retornado
para
a
aplicação;
BCC361
2014/02
DNS
(Domain
Name
System)
BCC361
2014/02
DNS
(Domain
Name
System)
21
BCC361
2014/02
DNS
(Domain
Name
System)
22
BCC361
2014/02
DNS
(Domain
Name
System)
4. Classe:
• Para
informações
relacionadas
à
Internet
recebe
valor
IN;
• Existem
outras
classes,
mas
raramente
são
u]lizadas
na
prá]ca.
23
BCC361
2014/02
DNS
(Domain
Name
System)
25
BCC361
2014/02
DNS
(Domain
Name
System)
26
BCC361
2014/02
DNS
(Domain
Name
System)
BCC361
2014/02
DNS
(Domain
Name
System)
28
BCC361
2014/02
DNS
(Domain
Name
System)
29
BCC361
2014/02
DNS
(Domain
Name
System)
30
BCC361
2014/02
DNS
(Domain
Name
System)
• Caso
haja
solicitações
para
um
host
diferente
de
um
mesmo
domínio,
o
caminho
é
encurtado
fazendo
uma
solicitação
direta
ao
servidor
de
nomes
oficial,
sem
passar
por
servidores
de
hierarquias
mais
altas;
BCC361
2014/02
Introdução;
DNS
(Domain
Name
System);
Correio
Eletrônico;
A
World
Wide
Web
(WWW).
CORREIO ELETRÔNICO 32
BCC361
2014/02
Correio
Eletrônico
Tópicos
• Introdução;
• Arquitetura
e
serviços;
• Agente
do
usuário;
• Formato
de
mensagens;
• Transferência
de
mensagem;
• Entrega
final.
33
BCC361
2014/02
Correio
Eletrônico
Introdução
• O
correio
eletrônico,
ou
e-‐mail,
já
existe
há
muito
tempo,
mais
de
duas
décadas;
• Uma
das
aplicações
mais
populares
desde
os
primeiros
dias
da
Internet;
34
BCC361
2014/02
Correio
Eletrônico
Introdução
35
BCC361
2014/02
Correio
Eletrônico
Arquitetura
e
serviços
• Principais
serviços:
• Composição;
• Transferência;
• Relatórios;
• Exibição;
36
BCC361
2014/02
Correio
Eletrônico
Arquitetura
e
serviços
• Arquitetura
do
sistema
de
e-‐mails
(1/3):
BCC361
2014/02
Correio
Eletrônico
Arquitetura
e
serviços
• Arquitetura
do
sistema
de
e-‐mails
(2/3):
BCC361
2014/02
Correio
Eletrônico
Arquitetura
e
serviços
• Arquitetura
do
sistema
de
e-‐mails
(3/3):
Arquitetura
e
serviços
• O
e-‐mail
é
enviado
entre
os
agentes
de
transferência
seguindo
um
formato
padrão:
• Formato
original
é
definido
na
RFC
822;
• Revisado
na
RFC
5322,
e
estendido
com
suporte
para
conteúdo
mul]mídia
e
texto
internacional
(MIME);
BCC361
2014/02
Correio
Eletrônico
BCC361
2014/02
Correio
Eletrônico
42
BCC361
2014/02
Correio
Eletrônico
• Para
resolver
esta
questão
foi
desenvolvido
o
MIME,
que
além
de
ser
u]lizado
para
mensagens
enviadas
pela
Internet
também
é
u]lizado
para
definir
conteúdo
para
outras
aplicações,
como
a
navegação
Web;
• A
ideia
é
con]nuar
a
usar
o
formato
da
RFC
822,
mas
incluir
uma
estrutura
para
o
corpo
da
mensagem
e
definir
regras
para
45
mensagens
que
não
u]lizam
o
ASCII.
BCC361
2014/02
Correio
Eletrônico
48
BCC361
2014/02
Correio
Eletrônico
BCC361
2014/02
Correio
Eletrônico
50
BCC361
2014/02
Correio
Eletrônico
Entrega
Minal
• A
úl]ma
etapa
na
arquitetura
de
e-‐mail
trata-‐se
da
entrega
do
e-‐mail
ao
agente
do
usuário;
• O
SMTP
não
foi
projetado
para
estes
obje]vos,
para
isso
são
u]lizados
outros
protocolos.
51
BCC361
2014/02
Correio
Eletrônico
Entrega
Minal
• Um
dos
principais
protocolos
usados
para
este
fim
é
o
IMAP
(Internet
Message
Access
Protocol);
Entrega
Minal
• Existem
também
protocolos
fechados,
como
o
MicrosoG
Exchange;
BCC361
2014/02
Introdução;
DNS
(Domain
Name
System);
Correio
Eletrônico;
A
World
Wide
Web
(WWW).
BCC361
2014/02
A
World
Wide
Web
(WWW)
Tópicos
• Introdução;
• Arquitetura;
• Páginas
está]cas;
• Páginas
dinâmicas;
• Protocolo
de
transferência.
55
BCC361
2014/02
A
World
Wide
Web
(WWW)
Introdução
• A
World
Wide
Web,
ou
WWW,
ou
Web,
é
uma
estrutura
que
permite
o
acesso
a
documentos
vinculados
espalhados
por
milhões
de
máquinas
na
Internet;
• Teve
seu
início
em
1989
no
CERN
(European
OrganizaEon
for
Nuclear
Research),
para
ajudar
grandes
equipes
de
membros
espalhados
por
vários
países
a
colaborar
compar]lhando
56
relatórios,
plantas,
desenhos,
fotos
e
outros
documentos.
BCC361
2014/02
A
World
Wide
Web
(WWW)
Introdução
• A
proposta
para
uma
teia
de
documentos
interligados
veio
do
|sico
Tim
Berners-‐Lee;
BCC361
2014/02
A
World
Wide
Web
(WWW)
Introdução
• No
decorrer
das
décadas
de
1990
e
2000,
sites
e
páginas
Web
cresceram
exponencialmente,
a]ngindo
milhões
de
sites
e
bilhões
de
páginas;
Arquitetura (1/5)
Arquitetura (2/5)
Arquitetura (3/5)
Arquitetura (4/5)
Arquitetura (5/5)
Arquitetura
• Atualmente
o
site
da
Universidade
de
Washington
é
assim:
64
BCC361
2014/02
A
World
Wide
Web
(WWW)
Arquitetura
• O
lado
cliente
(1/3):
• Para
iden]ficar
uma
página
é
u]lizada
a
URL
(Uniform
Resource
Locator),
que
é
definido
por
três
partes:
• O
protocolo
(também
conhecido
como
esquema);
• O
nome
DNS
da
máquina
onde
está
localizada;
• O
caminho,
que
especifica
exclusivamente
onde
está
a
página;
65
BCC361
2014/02
A
World
Wide
Web
(WWW)
Arquitetura
• O
lado
cliente
(2/3):
• Exemplo
de
URL:
hYp://www.cs.washington.edu/index.html;
• O
navegador
realiza
uma
série
de
tarefas
para
exibir
a
URL:
1. Obtém
o
IP
do
servidor
solicitando
ao
DNS
o
endereço
de
www.cs.washington.edu;
2. Estabelece
uma
conexão
TCP
com
o
servidor
na
porta
80;
3. Solicita
a
página
index.html
usando
um
comando
HTTP;
4. Caso
a
página
incluir
links
para
outros
recursos
para
exibição
(URLs),
buscará
estes
recursos
da
mesma
maneira;
5. Exibe
a
página;
6. Encerra
a
conexão
após
um
tempo.
66
BCC361
2014/02
A
World
Wide
Web
(WWW)
Arquitetura
• O
lado
cliente
(3/3):
• Diferentes
protocolos
que
podem
ser
usados
em
uma
URL:
Nome
Usado
para
Exemplo
hnp
Hipertexto
(HTML).
hnp://www.decom.ufop.br/reinaldo
hnps
Hipertexto
com
segurança.
hnps://www.bank.com/accounts/
{p
FTP.
{p://{p.cs.vu.nl/pub/minix/README
file
Arquivo
local.
file://usr/suzana/prog.c
mailto
Envio
de
e-‐mail.
mailto:[email protected]
rtsp
Streaming
de
mídia.
rtsp://youtube.com/montypython.mpg
67
BCC361
2014/02
A
World
Wide
Web
(WWW)
Arquitetura
• O
lado
servidor:
• Arquitetura
de
um
servidor
Web:
• Tarefas:
• Aceitar
uma
conexão
TCP
de
um
cliente
(um
navegador);
• Obter
o
caminho
até
a
página
(ou
programa);
• Obter
o
arquivo
(ou
gerar
o
conteúdo
dinâmico);
68
• Enviar
o
conteúdo
ao
cliente;
• Encerrar
a
conexão.
BCC361
2014/02
A
World
Wide
Web
(WWW)
Arquitetura
• Cookies
(1/2):
• Em
algumas
aplicações
é
necessário
iden]ficar
certas
informações
do
usuário
para
personalizar
conteúdo;
• Exemplo:
produtos
em
uma
cesta
de
compras
de
um
site
comercial;
BCC361
2014/02
A
World
Wide
Web
(WWW)
Arquitetura
• Cookies
(2/2):
• O
cookie
é
armazenado
no
cliente
para
ser
u]lizado
em
novas
requisições
ao
mesmo
servidor;
Páginas
estáticas
• Forma
mais
simples
de
página
Web,
elas
são
armazenadas
em
um
servidor,
que
as
retorna
para
serem
diretamente
exibidas
no
browser
quando
solicitadas;
BCC361
2014/02
A
World
Wide
Web
(WWW)
Páginas
estáticas
• A
HTML
já
passou
por
várias
evoluções:
Item
HTML
1.0
HTML
2.0
HTML
3.0
HTML
4.0
HTML
5.0
Hiperlinks
X
X
X
X
X
Imagens
e
listas
X
X
X
X
X
Mapas
e
imagens
a]vas
X
X
X
X
Formulários
X
X
X
X
Equações
X
X
X
Barras
de
ferramentas
X
X
X
Tabelas
X
X
X
Recursos
de
acessibilidade
X
X
Objetos
inseridos
X
X
Folhas
de
es]lo
X
X
ScripEng
X
X
Vídeo
e
áudio
X
Gráficos
e
vetores
em
linha
X
Representação
XML
X
Threads
em
segundo
plano
X
72
Armazenamento
pelo
navegador
X
Tela
de
desenho
X
BCC361
2014/02
A
World
Wide
Web
(WWW)
Páginas
estáticas
• O
obje]vo
original
do
HTML
era
de
apenas
estruturar
as
páginas:
• A
formatação
ficaria
a
cargo
dos
navegadores;
• No
entanto,
desenvolvedores
queriam
alterar
formatação,
e
vários
recursos
de
formatação
foram
inseridos;
73
BCC361
2014/02
A
World
Wide
Web
(WWW)
Páginas
estáticas
• Para
resolver
os
problemas
de
formatação
foi
criado
o
conceito
de
folha
de
es]lo,
o
CSS
(Cascade
Style
Sheets),
que
faz
a
separação
do
código
estrutural
(HTML)
do
código
de
formatação
(CSS);
74
BCC361
2014/02
A
World
Wide
Web
(WWW)
Páginas
dinâmicas
• O
modelo
de
páginas
está]cas
foi
ú]l
nos
primeiros
momentos
da
Web,
quando
um
grande
volume
de
informação
foi
inserido;
• Atualmente,
grande
parte
do
uso
da
Web
está
voltado
para
aplicações
e
serviços:
• Comércio
eletrônico;
• Pesquisa
em
catálogos
de
bibliotecas
ou
na
própria
Web;
• Leitura
e
envio
de
e-‐mails;
• Colaboração
e
redes
sociais;
Páginas
dinâmicas
• Geração
de
páginas
dinâmicas:
76
BCC361
2014/02
A
World
Wide
Web
(WWW)
Páginas
dinâmicas
• APIs
para
páginas
dinâmicas
do
lado
SERVIDOR
(1/2):
• CGI
(Common
Gateway
Interface):
• Definido
na
RFC
3875;
• Oferece
uma
interface
para
permi]r
que
os
servidores
“falem”
com
programas
de
back-‐end
e
scripts
que
aceitam
entrada
(formulários
por
exemplo)
e
gerem
páginas
em
resposta;
• Os
programas
podem
ser
escritos
em
variadas
linguagens:
Python,
Ruby,
Perl,
etc...;
77
BCC361
2014/02
A
World
Wide
Web
(WWW)
Páginas
dinâmicas
• APIs
para
páginas
dinâmicas
do
lado
SERVIDOR
(2/2):
• PHP
(Hypertext
Preprocessor):
• A
técnica
consiste
em
inserir
código
script
dentro
das
páginas
HTML;
• Os
scripts
serão
executados
no
próprio
servidor,
originando
uma
página
HTML
como
resultado;
• PHP
é
uma
linguagem
de
programação
poderosa
para
a
interface
entre
a
Web
e
bancos
de
dados
do
servidor;
• Ela
contém
variáveis,
strings,
arrays
e
a
maior
parte
das
estruturas
de
controle
encontradas
no
C;
• JSP
(Java
Server
Pages):
• Semelhante
ao
PHP,
mas
u]liza
linguagem
Java;
• ASP.NET
(Ac>ve
Server
Pages
.NET):
• Versão
da
Microso{
para
PHP
e
JSP.
78
BCC361
2014/02
A
World
Wide
Web
(WWW)
Páginas
dinâmicas
• Páginas
dinâmicas
do
lado
CLIENTE
(1/2):
• Para
responder
a
movimentos
do
mouse
ou
interagir
diretamente
com
os
usuários
é
necessário
incorporar
scripts
em
páginas
HTML
executadas
na
máquina
cliente;
• A
par]r
do
HTML
4.0
esses
scripts
são
permi]dos,
através
do
uso
da
tag
<script>;
79
BCC361
2014/02
A
World
Wide
Web
(WWW)
Páginas
dinâmicas
• Páginas
dinâmicas
do
lado
CLIENTE
(2/2):
• Uma
alterna]va
ao
JavaScript,
na
plataforma
Windows
é
o
VBScript,
que
é
baseado
no
Visual
Basic;
80
BCC361
2014/02
A
World
Wide
Web
(WWW)
Páginas
dinâmicas
• AJAX
(Asynchronous
JavaScript
and
XML)
(1/2):
• Trata-‐se
de
um
conjunto
de
tecnologias
que
trabalham
juntas
para
criar
aplicações
Web
tão
intera]vas
e
poderosas
quanto
aplicações
de
desktop
tradicionais;
81
BCC361
2014/02
A
World
Wide
Web
(WWW)
Páginas
dinâmicas
• AJAX
(Asynchronous
JavaScript
and
XML)
(2/2):
• Tecnologias
envolvidas:
1. HTML
e
CSS:
para
apresentar
as
informações
como
páginas;
2. DOM
(Document
Object
Model):
árvore
que
reflete
a
estrutura
dos
elementos
HTML,
u]lizado
para
alterar
partes
da
página
quando
elas
são
exibidas;
3. XML
(eXtensible
Markup
Language):
para
permi]r
a
troca
de
dados
entre
cliente
e
servidor;
4. Um
modo
assíncrono
para
os
programas
enviarem
e
receberem
dados
XML;
5. JavaScript:
como
uma
linguagem
para
juntar
toda
esta
funcionalidade;
82
• Exemplos
de
páginas
que
usam
AJAX:
Gmail,
Maps
e
Docs
da
Google,
Youtube
e
Facebook.
BCC361
2014/02
A
World
Wide
Web
(WWW)
BCC361
2014/02
A
World
Wide
Web
(WWW)
88
BCC361
2014/02
Fim!
REFERÊNCIAS:
• A.S.
TANENBAUM,
Redes
de
Computadores,
Pren]ce
Hall,
5a.
edição,
2011;
• KUROSE
e
ROSS,
Redes
de
Computadores
e
a
Internet
–
uma
abordagem
top-‐down,
5a.
Edição,
2010.
• Materiais
didá]cos
dos
professores:
• Rande
A.
Moreira,
UFOP
/
2011-‐01
Disponível
em:
hnp://randearievilo.com.br/redes/
(acesso
em
17/08/2011);
89
BCC361
2014/02