quinta-feira, 24 de julho de 2008

Arquitetura WEB(HTTP) - Parte 3


Vamos agora falar sobre o principal protocolo da arquitetura web. O HTTP que também está na imagem 01:

Imagem 01 - Arquitetura Web

Um protocolo é uma convenção ou padrão que controla ou permite a conexão, comunicação e transferência de dados através de dois pontos computacionais. Eles podem ser implementados por hardware ou software ou a combinação dos dois.

Os protocolos em geral implementam as seguintes funcionalidades:

  • detecção da conexão física subjacente ou a existência de um nó;
    handshaking (aperto de mão);

  • negociação de várias características de uma conexão;

  • como iniciar e finalizar uma mensagem;

  • como formatar uma mensagem;

  • o que fazer com mensagens corrompidas ou mal formatadas;

  • como detectar perda inesperada de conexão e o que fazer em seguida;

  • término de sessão ou conexão
HTTP(HyperText Transfer Protocol) é o protocolo Aplicação, do Modelo OSI, utilizado para transferência de dados na rede mundial de computadores, WWW(World Wide Web), veja na Imagem 2.

Imagem 2 - Modelo OSI

Ou seja, o HTTP é um protocolo em cima de outros protocolos, como por exemplo o TCP, isto é possível observar na Imagem 3.


Imagem 3 - Modelo OSI, algumas implementações

O HTTP, atualmente na versão 1.1, é um protocolo sem estado, ou seja, o cliente não fica sempre conectado ao servidor, faz esta conexão a cada requisição de um determinado recurso. Sua comunicação é feita através de requisições e respostas(Request/Response) e é feita através de uma mensagem que é composta de um cabeçalho e corpo.

As mensagens de requisição e de resposta têm informações diferentes. A mensagem HTTP de requisição é feita por um cliente, na maioria dos casos um navegador, que informa dentre outros dados qual o recurso solicitado e qual o método de requisição, os mais comuns são:
  • GET
  • POST
A mensagem HTTP de resposta é a resposta do servidor à requisição em seu cabeçalho está disponível o código de status e em seu corpo o texto do recurso solicitado, se for um HTML, estará o próprio HTML.

Existe também uma implementação segura, critptografada, do HTTP, chamada HTTPs. O HTTPs é implementado sobre uma camada SSL(Secure Sockets Layer) ou TLS (Transport Layer Security). Com ele é possível trafegar informações seguras entre cliente e servidor, garantindo assim que as mensagens que forem interceptadas sejam praticamente impossíveis de serem descriptografadas sem as chaves.

Para saber quando estamos em um site seguro, que implementa HTTPs, basta se atentar ao navegador. A url deverá estar iniciada com "https://" e um cadeado é comumente exibido, veja isto no internet explorer, na imagem 4 e no firefox na imagem 5.


Imagem 4 - Conexão segura no Internet Explorer


Imagem 5 - Conexão segura no Firefox

Outros personagens muitas vezes encontrados na arquitetura WEB é o Firewall e o Proxy. O Firewall é o responsável por barras requisições não desejáveis a um computador. Proxy é um tipo de servidor que atua nas requisições dos seus clientes executando os pedidos de conexão a outros servidores.

Referências:
http://en.wikipedia.org/wiki/OSI_model
http://www.novell.com/info/primer/prim05.html