R d de
Redes
d Computadores
C
t d
 Serviço world wide web
 Aplicação cliente-servidor
 Publicação de documentos (servidor) e a recuperação e visualização de
documentos (cliente)
 Evoluiu para acesso a documentos multimídia
 Protocolo específico para interação cliente-servidor:
 HTTP (Hyper Text Transfer Protocol)
 O cliente
li t se encarrega dde interpretar
i t
t o documento
d
t HTML (página)
( á i ) e exibir
ibi para o
usuário
Aula 27
A. Ca
arissimi -18-juin-15
HyperText Transfer Protocol
Institu
uto de Informática - U
UFRGS
Insttituto d
de Info
ormátic
ca - UF
FRGS
Introdução
ç
Cliente
Web
Cache
HTTP
Servidor
Web
Documentos
Web
Páginas web
(HTML)
Redes de Computadores
Página
g web
Tipos
p de documentos web
 Documento web
 Páginas estáticas
 Descrito em HTML (Hyper Text Markup Language)
 Documentos de conteúdo fixo criados e armazenados no servidor
 Cliente
Cli t obtém
bté uma cópia
ó i ddo ddocumento
t
 Elaboradas com auxilio de linguagens (HTML, XML, XSL, ....)
 Composta por uma série de objetos
 Arquivo base HTML, imagens, applets, clipes de vídeo, etc
 e.x.:
e x : página com texto e cinco imagens possui seis objetos
 Páginas dinâmicas
 Nome de um hospedeiro e porta
 Caminho para um recurso no sistema de arquivos do hospedeiro
 Protocolo (esquema) para buscar o recurso
Protocolo://nome_máquina:porta/recurso
http://www.inf.ufrgs.br/~asc/redes
htt htpps,
http,
ht
ft mailto,
ftp,
ilt news, telnet,
t l t ldap,
ld file
fil
Redes de Computadores
3
 Criado, por demanda, pelo servidor através de um aplicativo ou script
 O conteúdo do documento varia de uma requisição
q ç a outra
 Elaboradas com auxílio de linguagens (Java, JSP, ASP, CGI...)
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
 Acessível através de um URL (Uniforme Resource Locator)
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
2
 Páginas ativas
 Possuem um programa que executa do lado cliente
 Emprega linguagens de scripts como javascript ou applets java
Redes de Computadores
4
Cliente Web
Servidor web
 Servidor faz o armazenamento dos objetos
 Para o usuário, a web é conjunto de páginas
 Páginas são visualizadas por programas específicos:
 Ex: Apache, Microsoft Internet Information Server, Netscape Enterprise server
 Interação baseada em dois elementos:
 Browsers (Netscape, Mozilla Firefox, MS Internet Explorer, Chrome, etc)
 URL: Uniform Resource Locator
 HTTP: HyperText
yp
Transfer Protocol
Redes de Computadores
 Cada site web possui um daemon (servidor web)
 Espera requisições de clientes (conexões TCP)
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
 Possui três componentes: controlador, protocolos clientes e Intepretadores
(HTML, java, javascritp...)
 Permite carga e execução de páginas web de diferentes tipos
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
 Browser :
5
Redes de Computadores
Hyper
yp Text Transfer Protocol ((HTTP))
 Usada nas versões 0.9, 1.0 e 1.1
 Uma conexão para cada objeto
 Emprega
p g conexões TCP na pporta 80 ((default))
 Protocolo stateless (sem estado) e orientado a mensagens
 Servidor não mantém nenhuma informação
ç sobre o cliente
 Possuem três versões: HTTP 0.9, HTTP 1.0 e HTTP 1.1
7
 C
Cada
d conexão
ã ttransporta
t exatamente
t
t uma requisição/resposta
i i ã /
t
 Cliente abre a conexão, envia a requisição, o servidor envia a resposta e
fecha a conexão (ex: uma página com 5 figuras envolve seis conexões,
uma para página
á i e uma para cada
d fifigura))
 Conexões podem ser feitas em paralelo para páginas com mais de um objeto
 Número máximo de conexões é uma configuração
g ç do cliente
 Desvantagens:
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
 Determina apenas como os dados são transferidos: não indica, nem impõem
tipos de dados e determina nenhum tipo de processamento
 Browser é que determina como os dados são processados
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
6
Conexões não-persistentes
p
 Protocolo de aplicação da web
 Define forma como clientes solicitam páginas web aos servidores e
como esses as transferem para os clientes
Redes de Computadores
 Cliente envia uma requisição ao servidor
 Servidor atende requisição e envia resposta
 Conexão é desfeita
desfeita*
 Tempo para estabelecimento
 Consumo de recursos do sistema (memória e descritores)
 Cada conexão sofre o processo de partida lenta (slow start) do TCP
Redes de Computadores
8
Conexões persistentes
p
Métodos HTTP
 Disponível na versão HTTP/1.1
 Uma conexão pode atender várias requisições/respostas
 HTTP foi criado para ser genérico
 Tratamento de objetos e definições de métodos para manipulá-los
 Métodos suportados na versão 1.1 (visão do cliente)
 Sem paralelismo: cliente envia requisição i após ter recebido respostas da
requisição i-1
 Com paralelismo: envio de várias requisições sem esperar pela resposta
 Questão: quando encerrar?
 Por solicitação, time-out ou excesso de conexões abertas
Redes de Computadores
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
 Duas versões:
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
 A conexão é fechada pelo servidor em resposta a uma requisição de
encerramento feita pelo cliente ou por time-out
 Configurado no servidor
9
Redes de Computadores
Formatos da mensagem
g HTTP
 Linha de requisição possui três campos:
 Requisição e resposta
 Mensagem
M
em ASC II ((exceto
t o corpo dda mensagem em alguns
l
casos))
 Tipo da requisição (métodos)
 GET,
GET HEAD
HEAD, POST,
POST PUT,
PUT PATCH,
PATCH COPY,
COPY MOVE,
MOVE DELETE,
DELETE LINK,
LINK
UPLINK, OPTION
 Uniform Resource Locator ((URL):
) [protocolo]
[p
] :// [máquina]
[ q
] : [p
[porta]] / [[recurso]]
 Versão HTTP
 Genericamente, ambas possuem três seções:
11
 Linha(s) de cabeçalho
 Conjunto de pares {nome de campo; valor}
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
 Linha de requisição ou de status
 Linhas de cabeçalho
 Corpo
p de entidade
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
10
Mensagem
g de requisição
q ç
 Dois formatos básicos:
Redes de Computadores
GET: usado para solicitar a recuperação de um objeto
POST: similar ao GET,
GET mas envia informações obtidas por formulários
PUT: solicita gravação de um objeto no servidor
PATCH: envia lista de modificações
ç
a serem feitas em um objeto
j
HEAD: solicita leitura apenas do cabeçalho da página
MOVE, COPY, DELETE, LINK e UNLIK: similares aos comandos de
movimentação,
i
t ã cópia,
ó i remoção,
ã criação
i ã e remoção
ã dde aliases
li
em um sistema
i t
de arquivos
 OPTION: consulta ppropriedades
p
do servidor ou de um objeto
j






 Corpo da entidade
 Para métodos como POST que envia parâmetros para um formulário
Redes de Computadores
12
Cabeçalhos
ç
da requisição
q ç
Mensagem
g de requisição:
q ç formato e exemplo
p
[nome; valor]
Host: nome do servidor onde o objeto se encontra
Connection: se servidor deve encerrar ou não a conexão após enviar objeto
User-agent: tipo do cliente que está fazendo a requisição
Accept-language: idioma de preferência do usuário
....
Redes de Computadores
[nome; valor]
13
Corpo
(presente apenas em
algumas mensagens)
Mensagem de requisição
- Método GET não possui corpo
- Método POST envia aqui
q as informações
ç
14
Códigos
g de status e cabeçalho
ç
de resposta
p
 Códigos mais comuns
 Linha de status define:
 200: requisição processada com
sucesso
 301: objeto solicitado foi movido
 400: erro genérico no
processamento
 404: objeto solicitado não existe
 505: versão requisitada não é
suportada
t d
 Versão HTTP
 Código
Códi dde status
t t
 Frase explicativa do código de status
Institu
uto de Informática - U
UFRGS
 Conjunto de pares {nome, valor}
 Corpo da entidade
A. Ca
arissimi -18-juin-15
 Objeto solicitado
15
A. Ca
arissimi -18-juin-15
 Linhas de cabeçalho
Institu
uto de Informática - U
UFRGS
Host: www.someschool.edu
Connection: close
User-agent: Mozilla/4.0
Accept-language: fr
Redes de Computadores
Mensagem
g de resposta
p
Redes de Computadores
GET /somedir/page.html HTTP/1.1
Linha em branco (CR/LF)
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS




Requisição
Cabeçalhos
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
 Pares nome e valor
 Indicam ao servidor como realizar a requisição
 Exemplos:
Redes de Computadores
 Cabeçalhos mais comuns
 Connection: informa ao cliente se o
servidor encerrará ou não a conexão
 Date: hora e data do envio do objeto
 Last-modified: data e hora de
criação ou modificação do objeto
 Server: tipo do servidor:
 Content-lenght: tamanho da
mensagem em bytes
b t
 Content-type: tipo do objeto que
está sendo enviado
16
Mensagens de resposta: formato e exemplo
Multipurpose
p p
Internet Mail Extensions ((MIME))
 Nem toda página (documento) é um HTML
Status
Cabeçalhos
Linha em branco (CR/LF)
Corpo
(presente apenas em
algumas mensagens)
 O navegador possui um interpretador
 Necessário chamar um visualizador externo
Connection: close
Date: Thu,
Thu 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon,22 jun 199809:23:24 GMT
Content-Length: 6821
Content-Type: text/html
(data data data .... Data data data data)
Mensagem de resposta
Redes de Computadores
 Estratégias para visualizadores externo
A. Ca
arissimi -18-juin-15
[Nome; valor]
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
...
 Necessário interpretar o conteúdo de acordo com o tipo
HTTP/1.1 200 OK
Institu
uto de Informática - U
UFRGS
[nome; valor]
 A mensagem HTTP de resposta informa o tipo (usa padrão MIME)
17
GET condicional
 Funcionamento baseado na cache cliente
 Cópia na cache pode estar desatualizada
 Acesso a página
 http://www.inf.ufrgs.br/~asc/redes/http.html
 Sessão wireshark
 Arquivo http 1.1 exemplo
19
GET
Cliente
Last-Modified: data
Servidor
...
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
 Emprega cabeçalho If-modified-since
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
18
Redes de Computadores
Exemplo de sessão http
Redes de Computadores
 Plug-in : extensão do navegador (plugin para PDF,
PDF Flash,
Flash Quicktime...)
Quicktime )
 Execução de programa específico (e.g. power-point)
 e.g.: application/vnd.ms-powerpoint
GET If-Modified-Since: data
HTTP/1.0 304 Not Modified
Redes de Computadores
20
Interação
ç usuário-servidor: autenticação
ç
Interação
ç usuário-servidor: cookies
 Mecanismo para identificar usuários
 Armazenam informações dos usuários
 Criado e armazenado no servidor ao receber uma requisição http
 É um registro
i t associando
i d usuário
á i ao cookie
ki
 Cookie é enviado na resposta e armazenado em um diretório mantido pelo
browser do usuário
 Exige a definição de um nome de usuário e uma senha
 Codificação
C difi ã dde status
t t e cabeçalhos
b lh específicos
ífi
para ttall
Servidor
Authorization
Redes de Computadores
 Usos de cookies
 Identificar usuários sem necessitar nome e senha
 Lembrar preferências de um usuário (carrinhos de compras, publicidade, etc)
A. Ca
arissimi -18-juin-15
Cliente
Institu
uto de Informática - U
UFRGS
401 Authorization Required
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
Requisição
Servidor
22
Cache no cliente web
Domínio: site de onde o cookie foi gerado
Caminho: diretório no servidor onde o cookie é válido
Conteúdo: valor
Data expiração: cookies persistentes ou não (hora GMT)
Segurança: enviar cookie apenas se conexão for via SSL (sim ou não)
 Existem
s e coo
cookies
es que rastreiam
as e a usuários
usuá os e ssites
es (spy
(spyware)
a e)
23
A. Ca
arissimi -18-juin-15
 Navegador web mantém uma cópia no disco das páginas (recursos)
usadas recentemente
 Quando desconsiderar?
Institu
uto de Informática - U
UFRGS
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
...
Set-cookie: 167843
Redes de Computadores
 Definido na RFC 2109
 Um string de até 4 KB que o servidor cria e associa a um navegador
 Possui até 5 campos:
Redes de Computadores
Requisição
Cliente
Cookie: 1678453
21
Alguns
g
detalhes sobre cookies





 Problema: usuários nômades (armazenamento é local)
 Estratégia 1:
 Combinação Last-Modified
Last Modified + Date
 Expires + Date
 Heurísticas
 Estratégia 2:
 Baseada em if-Modified + Etag + If-none-Match
 Diretiva no-cache para páginas dinâmicas e páginas com
autenticação
Redes de Computadores
24
Proxyy Web
Hyper
yp Text Transfer Protocol over SSL ((HTTPS))
 Melhorar o desempenho realizando caching das páginas acessadas
 O HTTP não oferece nenhum tipo de segurança
 Reduz carga no servidor, diminui tráfego na rede, diminui latência
 As mensagens HTTP são em ASCII
 Não
Nã garantias
ti quanto
t a sua autenticidade,
t ti id d iintegridade
t id d e confidencialidade
fid i lid d
 Contribui para a segurança
 Protocolo de aplicação da web que utiliza criptografia
reponse
Cliente
request
servidor
Proxyy web mais comum é o squid
q (p
(porta 3128))
http://www.squid-cache.org
Redes de Computadores
25
Leituras complementares
p
 Tanenbaum, A. Redes de Computadores (4a edição), Campus 2003.
 Capítulo 7, seção 7.3.4
 Carissimi, A.; Rochol, J; Granville, L.Z; Redes de Computadores.
Série Livros Didáticos. Bookman 2009.
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
 Capítulo 7,
7 seção 77.33
Redes de Computadores
27
 Garante confidencialidade (pela cifragem de dados)
 Arquivo https exemplo
 Garante a identidade das ppartes envolvidas em uma transferência (p
(pelo uso
de chaves públicas e privadas)
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
Proxy
A. Ca
arissimi -18-juin-15
Institu
uto de Informática - U
UFRGS
 Máquina cliente não é visível do exterior
 Possibilidade de monitorar sites,
sites palavras chaves,
chaves etc
 Emprega a porta 443/TCP invés da 80
https://nome_máquina/recurso
Redes de Computadores
26
Download

R d d C t d Redes de Computadores