Camadas de Apresentação e Aplicação: Funções e Protocolos

Classificado em Computação

Escrito em em português com um tamanho de 9,49 KB

Funções Básicas da Camada de Apresentação

  • Conversão;
  • Compressão;
  • Criptografia.

Camada de Apresentação: Conversão de Dados

A Camada de Apresentação converte o formato do dado recebido pela Camada de Aplicação em um formato comum a ser usado na transmissão desse dado, ou seja, um formato entendido pelo protocolo usado.

Um exemplo comum é a conversão do padrão de caracteres (código de página) quando, por exemplo, o dispositivo transmissor usa um padrão diferente do ASCII.

O Padrão ASCII (American Standard Code for Information Interchange)

O padrão ASCII é uma codificação de caracteres para simplificar a comunicação entre os computadores e a troca de dados. Foi especialmente baseado na língua inglesa, pois foi criado nos EUA, e, por sua vez, os caracteres são representados em números. Esta tabela usa conjuntos de 8 bits para a representação de 256 caracteres.

O Padrão Unicode

O Unicode nasceu entre 1986 e 1987, tendo origem na Xerox com o objetivo de construir um banco de dados para relacionar caracteres idênticos do alfabeto japonês, chinês tradicional e chinês simplificado, a fim de construir uma fonte tipográfica para caracteres chineses estendidos, que outros sistemas de codificação não suportavam. Atualmente, o sistema Unicode cobre quase todas as línguas em uso, incluindo:

  • Alfabeto Árabe
  • Alfabeto Arménio
  • Alfabeto Hebraico
  • Braille
  • ...

O Unicode utiliza largura fixa de 16 bits para representação de caracteres, podendo suportar cerca de 100.000 caracteres.

Camada de Apresentação: Compressão

A compressão de dados pega os dados recebidos da Camada de Aplicação (Camada 7) e os comprime (como se fosse um compactador comumente encontrado em PCs, como Zip ou Arj). A Camada de Apresentação (Camada 6) do dispositivo receptor fica responsável por descompactar esses dados.

Vantagem da Compressão

  • A transmissão dos dados torna-se mais rápida, já que haverá menos dados a serem transmitidos: os dados recebidos da Camada 7 foram encolhidos e enviados à Camada de Sessão (Camada 5).

Camada de Apresentação: Criptografia e Segurança

Para aumentar a segurança, pode-se usar algum esquema de criptografia neste nível, sendo que os dados só serão decodificados na Camada de Apresentação (Camada 6) do dispositivo receptor.

Exemplo: Utilização de SSL (Secure Sockets Layer)

O SSL (Secure Sockets Layer) é um método de segurança das transações efetuadas via Internet. O padrão SSL foi criado pela Netscape, em colaboração com a Mastercard, Bank of America, MCI e Silicon Graphics. Assenta num método de criptografia por chave pública a fim de garantir a segurança da transmissão de dados na Internet. O seu princípio consiste em estabelecer um canal de comunicação protegido (codificado) entre duas máquinas (um cliente e um servidor) após uma etapa de autenticação.

Modelo de Transação Protegida por SSL 2.0

  1. A segurança das transações por SSL 2.0 baseia-se numa troca de chaves entre cliente e servidor. Inicialmente, o cliente conecta-se ao site comercial protegido por SSL e pede-lhe que se autentique. O cliente envia igualmente a lista dos criptossistemas que suporta, organizados por ordem decrescente de acordo com o comprimento das chaves.
  2. O servidor, quando recebe o pedido, envia um certificado ao cliente, contendo a chave pública do servidor, assinado por uma Autoridade de Certificação (CA), bem como o nome do criptossistema o mais elevado possível na lista com o qual é compatível (o comprimento da chave de codificação - 40 bits ou 128 bits - será o do criptossistema comum que tiver a maior dimensão de chave).
  3. O cliente verifica a validade do certificado, seguidamente cria uma chave secreta aleatória (mais exatamente um bloco supostamente aleatório), calcula esta chave com a ajuda da chave pública do servidor, seguidamente envia-lhe o resultado (a chave de sessão).
  4. O servidor está em condições de decifrar a chave de sessão com a sua chave privada. Assim, as duas entidades estão na posse de uma chave comum da qual são os únicos conhecedores. O resto das transações pode fazer-se com a ajuda da chave de sessão, garantindo a integridade e a confidencialidade dos dados trocados.

Camada de Aplicação (Camada 7)

Principais Protocolos da Camada de Aplicação

  • HTTP (HyperText Transfer Protocol)
  • SMTP (Simple Mail Transfer Protocol)
  • DNS (Domain Name System)
  • DHCP (Dynamic Host Configuration Protocol)
  • SNMP (Simple Network Management Protocol)
  • FTP (File Transfer Protocol)

Arquiteturas de Aplicações de Redes

  • Cliente/Servidor
  • Peer-to-Peer (P2P)
  • Híbrida (Cliente/Servidor + Peer-to-Peer)

A Web e o Protocolo HTTP

O HTTP surgiu da necessidade de compartilhar informações na Internet (texto, som ou imagem). Para que a transferência dessas informações fosse possível, houve a necessidade de desenvolver uma forma padronizada de comunicação entre os clientes e os servidores web.

O protocolo HTTP foi implementado a partir de 1989 no CERN (European Center for High-Energy Physics) em Genebra, na Suíça, e é definido pelas RFCs 1945 e 2616.

Estrutura do Protocolo HTTP

  • Arquitetura Cliente/Servidor
  • Objetos
  • Conexões
  • Cabeçalho

Objetos HTTP

Uma página web é constituída por objetos. Um objeto pode ser um arquivo HTML, uma imagem, um áudio, etc. A maioria das páginas web são constituídas de um arquivo-base HTML e diversos objetos relacionados. Por exemplo, se uma página contiver um texto HTML e cinco imagens JPG, ela terá 6 objetos.

O arquivo-base referencia os outros objetos na página através de URLs (Universal Resource Locator). Cada URL tem dois componentes básicos:

  • A identificação do servidor;
  • A localização do objeto.

Exemplo: http://www.uniara.com.br/index.php

Conexões HTTP (Stateless)

O protocolo HTTP é stateless (sem estado), i.e., o servidor não mantém informação sobre os pedidos passados que foram realizados pelos clientes.

As conexões podem ser:

  • Não-Persistentes
  • Persistentes

E podem operar:

  • Sem paralelismo
  • Com paralelismo
Conexões Não-Persistentes (HTTP 1.0)
  • Conexões TCP são fechadas a cada requisição e resposta.
  • Conexões TCP consomem tempo de CPU, largura de banda e memória.
  • As páginas web costumam ser compostas por diversos objetos, exigindo múltiplas conexões.
Conexões Persistentes (HTTP 1.1)
  • Uma única conexão TCP é necessária.
  • Essa conexão permanece aberta até que todos os objetos sejam transferidos.
Tipos de Conexões Persistentes
  • Sem paralelismo: O cliente envia uma nova requisição somente quando a resposta anterior for recebida.
  • Com paralelismo: O cliente envia várias requisições em sequência (pipelining) (padrão do HTTP 1.1).

Cabeçalho de Requisição HTTP

O Cabeçalho de Requisição é dividido em três seções:

  1. Linha de Requisição
    • Método (exemplo: GET, POST, HEAD, DELETE)
    • Caminho do objeto
    • Versão do protocolo HTTP
  2. Linhas de Cabeçalho
  3. Corpo da Entidade

Cabeçalho de Resposta HTTP

O Cabeçalho de Resposta é dividido em três seções:

  1. Linha de Status
    • Versão do protocolo HTTP
    • Código de resposta (estado)
    • Frase
  2. Linhas de Cabeçalho
  3. Corpo da Entidade

Proxy e Cache HTTP

O Proxy/Cache é uma entidade de rede instalada em uma dada organização que atende requisições HTTP em nome de um servidor de origem.

Objetivos e Benefícios do Proxy/Cache

  • Atender o cliente sem envolver o servidor Web originador da informação.
  • Possui disco de armazenamento próprio e mantém cópias de objetos recentemente requisitados.
  • Pode reduzir significativamente o tempo de resposta para a requisição de um cliente.
  • Pode reduzir significativamente o tráfego na Internet como um todo.
  • O cliente configura seu browser para que o mesmo primeiramente consulte o proxy.

GET Condicional (Conditional GET)

Embora o cache possa reduzir os tempos de resposta, ele introduz um problema: a cópia de um objeto existente no cache pode estar desatualizada. O HTTP possui um mecanismo que permite que um proxy verifique se seus objetos estão atualizados, chamado GET Condicional (Conditional GET).

Uma mensagem de requisição HTTP é denominada uma mensagem GET Condicional se:

  • Usar o método GET.
  • Possuir uma linha de cabeçalho: If-Modified-Since.

Entradas relacionadas: