Aula29

939 visualizações

Publicada em

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
939
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
32
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula29

  1. 1. 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
  2. 2. 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
  3. 3. 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
  4. 4. 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
  5. 5. 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
  6. 6. 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
  7. 7. 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

×