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 -26-nov
v.-13
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 -26-novv.-13
Institu
uto de Informática - U
UFRGS
Acessível através de um URL (Uniforme Resource Locator)
A. Ca
arissimi -26-novv.-13
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 -26-nov
v.-13
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 -26-nov
v.-13
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 -26-novv.-13
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 -26-novv.-13
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 -26-nov
v.-13
Institu
uto de Informática - U
UFRGS
Duas versões:
A. Ca
arissimi -26-nov
v.-13
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 -26-novv.-13
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 -26-novv.-13
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 -26-novv.-13
Objeto solicitado
15
A. Ca
arissimi -26-novv.-13
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 -26-nov
v.-13
Institu
uto de Informática - U
UFRGS
Requisição
Cabeçalhos
A. Ca
arissimi -26-nov
v.-13
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 -26-nov
v.-13
[Nome; valor]
A. Ca
arissimi -26-nov
v.-13
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 -26-novv.-13
Institu
uto de Informática - U
UFRGS
Emprega cabeçalho If-modified-since
A. Ca
arissimi -26-novv.-13
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 -26-nov
v.-13
Cliente
Institu
uto de Informática - U
UFRGS
401 Authorization Required
A. Ca
arissimi -26-nov
v.-13
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 -26-novv.-13
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 -26-novv.-13
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
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 -26-nov
v.-13
Institu
uto de Informática - U
UFRGS
Proxy
A. Ca
arissimi -26-nov
v.-13
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
25
Emprega a porta 443/TCP invés da 80
https://nome_máquina/recurso
Redes de Computadores
26
Redes de Computadores
28
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.
Redes de Computadores
27
A. Ca
arissimi -26-novv.-13
Institu
uto de Informática - U
UFRGS
A. Ca
arissimi -26-novv.-13
Institu
uto de Informática - U
UFRGS
Capítulo 7,
7 seção 77.33
Parque
q de servidores
Forma de oferecer melhor desempenho para acesso a servidores
web sob alta carga de acesso
Balanceamento
B l
t de
d carga
Distribuição geográfica
Rodízio IP via DNS
Uso de front-end ppara direcionar requisições
q ç
((midlebox))
A. Ca
arissimi -26-nov
v.-13
Institu
uto de Informática - U
UFRGS
Duas estratégias:
Redes de Computadores
29