Anda di halaman 1dari 7

Introdução

Redes de Computadores ! Serviço world wide web


Instituto de Informática - UFRGS

! Aplicação cliente-servidor
! Permite a publicação de documentos (servidor) e a recuperação e
HyperText Transfer Protocol visualização de documentos (cliente)
! Protocolo específico para interação cliente-servidor:
! HTTP (Hyper Text Transfer Protocol)

Instituto de Informática - UFRGS


! Protocolo textual para transferir documentos em formato HTML (Hyper
Text Markup Language)
! O cliente se encarrega de interpretar o documento HTML (página) e

A. Carissimi -9-déc.-09
exibir para o usuário

Aula 29
Redes de Computadores 2

Componentes do serviço web Página web

! Documento web
! Composta por uma série de objetos: arquivo base HTML, imagens,
Cliente Servidor applets, clipes de vídeo, etc)
Web HTTP Web ! Èxemplo: página com texto e cinco imagens possui seis objetos
! Acessível através de um URL (Uniforme Resource Locator)
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

! Nome de um hospedeiro
Cache Documentos
Web ! Caminho para um recurso no sistema de arquivos do hospedeiro
A. Carissimi -9-déc.-09

A. Carissimi -9-déc.-09

http://www.in.ufrgs.br/~asc/redes

Páginas web (HTML)

Redes de Computadores 3 Redes de Computadores 4


Cliente Web Servidor web

! Para o usuário, a web é conjunto de páginas ! Cada site web possui um daemon (servidor web)
! Páginas são visualizadas por programas específicos: ! Espera requisições de clientes (conexões TCP)
! Browsers (Netscape, Mozilla, MS Internet Explorer, etc) ! Cliente envia uma requisição ao servidor
! Servidor atende requisição e envia resposta
! Browser normalmente possui internamente vários interpretadores ! Conexão é desfeita*
permitindo a carga e a execução de páginas de diferentes tipos
! Servidor faz o armazenamento dos objetos
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS


! Exemplos: apache, Microsoft Internet Information Server, Netscape Enterprise
server
Protocolo://nome_máquina:porta/recurso ! Interação baseada em dois elementos:
! URL: Uniform Resource Locator
A. Carissimi -9-déc.-09

A. Carissimi -9-déc.-09
http, htpps, ftp, mailto, news, telnet, ldap, file ! HTTP: HyperText Transfer Protocol

Redes de Computadores 5 Redes de Computadores 6

Hyper Text Transfer Protocol (HTTP) Conexões não-persistentes

! Protocolo de aplicação da web ! Usada nas versões 0.9, 1.0 e 1.1


! Define forma como clientes solicitam páginas web aos servidores e ! Uma conexão para cada objeto
como esses as transferem para os clientes ! Cada conexão transporta exatamente uma requisição/resposta
! Cliente abre a conexão, envia a requisição, o servidor envia a resposta e
! Determina apenas como os dados são transferidos: não indica, nem impõem
fecha a conexão (ex: uma página com 5 figuras envolve seis conexões,
tipos de dados e determina nenhum tipo de processamento uma para página e uma para cada figura)
! Browser é que determina como os dados são processados ! Conexões podem ser feitas em paralelo para páginas com mais de um objeto
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

! Emprega conexões TCP na porta 80 (default) ! Número máximo de conexões é uma configuração do cliente
! Protocolo stateless (sem estado) e orientado a mensagens ! Desvantagens:
! Servidor não mantém nenhuma informação sobre o cliente ! Tempo para estabelecimento
A. Carissimi -9-déc.-09

A. Carissimi -9-déc.-09

! Consumo de recursos do sistema (memória e descritores)


! Possuem três versões: HTTP 0.9, HTTP 1.0 e HTTP 1.1
! Cada conexão sofre o processo de partida lenta (slow start) do TCP

Redes de Computadores 7 Redes de Computadores 8


Conexões persistentes Métodos HTTP

! Disponível na versão HTTP/1.1 ! HTTP foi criado para ser genérico


! Uma conexão pode atender várias requisições/respostas ! Tratamento de objetos e definições de métodos para manipulá-los
! A conexão é fechada pelo servidor em resposta a uma requisição de ! Métodos suportados na versão 1.1 (visão do cliente)
encerramento feita pelo cliente ou por time-out ! GET: usado para solicitar a recuperação de um objeto
! Configurado no servidor ! POST: similar ao GET, mas envia informações obtidas por formulários
! Duas versões: ! PUT: solicita gravação de um objeto no servidor
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS


! Sem paralelismo: cliente envia requisição i após ter recebido respostas da ! PATCH: envia lista de modificações a serem feitas em um objeto
requisição i-1 ! HEAD: solicita leitura apenas do cabeçalho da página
! Com paralelismo: envio de várias requisições sem esperar pela resposta ! MOVE, COPY, DELETE, LINK e UNLIK: similares aos comandos de
A. Carissimi -9-déc.-09

A. Carissimi -9-déc.-09
movimentação, cópia, remoção, criação e remoção de aliases em um sistema
de arquivos
! OPTION: consulta propriedades do servidor ou de um objeto

Redes de Computadores 9 Redes de Computadores 10

Formatos da mensagem HTTP Mensagem de requisição

! Dois formatos básicos: ! Linha de requisição possui três campos:


! Requisição e resposta ! Tipo da requisição (métodos)
! Mensagem em ASC II (exceto o corpo da mensagem em alguns casos) ! GET, HEAD, POST, PUT, PATCH, COPY, MOVE, DELETE, LINK,
! Genericamente possuem três seções: UPLINK, OPTION
! Uniform Resource Locator (URL): [protocolo] :// [máquina] : [porta] / [recurso]
! Linha de requisição/status
! Versão HTTP
! Linhas de cabeçalho
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

! Corpo de entidade ! Linha(s) de cabeçalho


! Conjunto de pares {nome de campo; valor}
! Corpo da entidade
A. Carissimi -9-déc.-09

A. Carissimi -9-déc.-09

! Para métodos como POST que envia parâmetros para um formulário

Redes de Computadores 11 Redes de Computadores 12


Cabeçalhos da requisição Mensagem de requisição: formato e exemplo

! Pares nome e valor Requisição


! Indicam ao servidor como realizar a requisição Cabeçalhos

! Exemplos: [nome; valor] GET /somedir/page.html HTTP/1.1


Host: www.someschool.edu
! Host: nome do servidor onde o objeto se encontra ....
Connection: close
! Connection: se servidor deve encerrar ou não a conexão após enviar objeto [nome; valor] User-agent: Mozilla/4.0
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS


! User-agent: tipo do cliente que está fazendo a requisição Accept-language: fr
Linha em branco (CR/LF)
! Accept-language: idioma de preferência do usuário
Corpo
(presente apenas em
A. Carissimi -9-déc.-09

A. Carissimi -9-déc.-09
algumas mensagens)
- Método GET não possui corpo
Mensagem de requisição - Método POST envia aqui as informações

Redes de Computadores 13 Redes de Computadores 14

Mensagem de resposta Códigos de status e cabeçalho de resposta

! Linha de status define: ! Códigos mais comuns ! Cabeçalhos mais comuns


! Versão HTTP ! 200: requisição processada com ! Connection: informa ao cliente se o
sucesso servidor encerrará ou não a conexão
! Código de status
! 301: objeto solicitado foi movido ! Date: hora e data do envio do objeto
! Frase explicativa do código de status ! 400: erro genérico no ! Last-modified: data e hora de
! Linhas de cabeçalho processamento criação ou modificação do objeto
! Conjunto de pares {nome, valor} ! 404: objeto solicitado não existe ! Server: tipo do servidor:
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

! 505: versão requisitada não é ! Content-lenght: tamanho da


! Corpo da entidade suportada mensagem em bytes
! Objeto solicitado ! Content-type: tipo do objeto que
está sendo enviado
A. Carissimi -9-déc.-09

A. Carissimi -9-déc.-09

Redes de Computadores 15 Redes de Computadores 16


Interação usuário/servidor: autenticação
Mensagens de resposta: formato e exemplo

Status
! Mecanismo para identificar usuários
Cabeçalhos ! Exige a definição de um nome de usuário e uma senha
[nome; valor] ! Codificação de status e cabeçalhos específicos para tal
HTTP/1.1 200 OK
... Connection: close
Date: Thu, 06 Aug 1998 12:00:15 GMT
Requisição
[Nome; valor] Server: Apache/1.3.0 (Unix)
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS


Last-Modified: Mon,22 jun 199809:23:24 GMT 401 Authorization Required
Linha em branco (CR/LF) Servidor
Content-Length: 6821 Cliente
Content-Type: text/html Authorization
Corpo
(presente apenas em
A. Carissimi -9-déc.-09

A. Carissimi -9-déc.-09
algumas mensagens) (data data data .... Data data data data)

Mensagem de resposta

Redes de Computadores 17 Redes de Computadores 18

Interação usuário/servidor: cookies Proxy Web

! Armazenam informações dos usuários ! Melhorar o desempenho realizando caching das páginas acessadas
! Usos de cookies ! Segurança
! Identificar usuários sem necessitar nome e senha ! Máquina cliente não é visível do exterior
! Lembrar preferências de um usuário ! Possibilidade de monitorar sites, palavras chaves, etc
! Carrinhos de compras, etc. Proxy
! Problema: usuários nômades (armazenamento é local)
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

Requisição
Cliente Servidor reponse
Set-cookie: 167843
servidor
... Cliente request
A. Carissimi -9-déc.-09

A. Carissimi -9-déc.-09

Proxy web mais comum é o squid (porta 3128)


Cookie: 1678453
http://www.squid-cache.org

Redes de Computadores 19 Redes de Computadores 20


Caches cooperativos GET condicional

! Vantagens do uso de caches: ! Funcionamento baseado na cache cliente


! Redução do tempo de resposta ! Cópia na cache pode estar desatualizada
! Redução do tráfego no enlace instituição-Internet (economia largura de banda) ! Emprega cabeçalho If-modified-since
! Infra-estrutura para distribuição de conteúdo para servidores e organizações
de “baixo-custo”
! Idéia é ao invés de repassar a consulta para o servidor web “origem” GET
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS


Cliente Servidor
repassar a um outro cache Last-Modified: data

! Organização de forma hierárquica (normalmente em backbones) ...


! Protocolo específico: ICP (Internet Caching Protocol) GET If-Modified-Since: data
A. Carissimi -9-déc.-09

A. Carissimi -9-déc.-09
HTTP/1.0 304 Not Modified

Redes de Computadores 21 Redes de Computadores 22

Hyper Text Transfer Protocol over SSL (HTTPS) Exemplos reais de http

! Protocolo de aplicação da web que utiliza criptografia ! Uma sessão de consulta a uma página web composta por um
! Garante privacidade (criptografia) conjunto de objetos (com paralelismo e não persistente)
! Sessão exemplo 1 http ethereal
! Garante a identidade das partes envolvidas em uma transferência
! Porta 443/TCP ! Uma sessão de consulta a uma página web com https
! Sessão exemplo 2 https
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

https://nome_máquina/recurso
A. Carissimi -9-déc.-09

A. Carissimi -9-déc.-09

Redes de Computadores 23 Redes de Computadores 24


Leituras complementares

! 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.
! Capítulo 7, seção 7.3
Instituto de Informática - UFRGS
A. Carissimi -9-déc.-09

Redes de Computadores 25

Anda mungkin juga menyukai