Cursos / Redes de Computadores / Redes de Computadores II / Aula

arrow_back Aula 02 - Web: Protocolo HTTP e servidor Apache - Parte I

Interação entre cliente e servidores HTTP

Para entendermos como de fato ocorre a troca de informação entre um servidor e um cliente HTTP, vamos inicialmente descrever, de forma genérica, como ocorre a transferência de uma página web. Dependendo da versão do protocolo em uso, haverá uma importante diferença na forma como cliente e servidor interagem. Por padrão, o HTTP/1.0 transfere páginas em um modo conhecido como não persistente, enquanto que o HTTP/1.1 utiliza um modo conhecido como persistente.

Apesar de haver diferenças na forma como clientes e servidores trocam as mensagens no HTTP/1.0 e HTTP/1.1, o conteúdo dessas mensagens pode ser idêntico.

 

HTTP/1.0 – conexões não persistentes

Para um cliente acessar a página web indicada no quadro abaixo, no modo não persistente, ele realiza a sequência de passos descritos a seguir. Imagine que o arquivo HTML dessa página faz referência a três imagens.

http://start.ubuntu.com/9.10/index.htm

  1. Cliente inicia uma conexão TCP com o servidor start.ubuntu.com na porta 80;
  2. Cliente envia uma mensagem de requisição HTTP ao servidor solicitando a página web /9.10/index.html;
  3. Servidor recebe a requisição e responde com o objeto solicitado (a página) através de uma mensagem de resposta HTTP;
  4. Servidor encerra a conexão TCP após a confirmação (acks do TCP) de que o cliente recebeu corretamente sua resposta;
  5. Cliente recebe a mensagem de resposta HTTP. Essa mensagem indica que o objeto “encapsulado” é um arquivo HTML. O cliente extrai o arquivo HTML da resposta, analisa seu conteúdo, e encontra referências para 3 outros objetos;
  6. Os passos 1 até 4 são repetidos para cada um dos objetos referenciados. Ou seja, novas conexões TCP são estabelecidas;

Quando um cliente ou servidor utiliza conexões não persistentes, para cada objeto existente em uma página irá se repetir o processo de abertura de conexão; solicitação e recebimento do objeto; encerramento de conexão. Assim sendo, esse modo de operação não é apropriado para páginas que possuam um grande número de objetos (como está ficando cada vez mais comum). Abrir diversas conexões sequencialmente é muito lento, e mesmo que fossem abertas em paralelo, isso iria consumir muitos recursos (memória, processador) de clientes e servidores.

Versão 5.3 - Todos os Direitos reservados