HTTP (Hypertext Transfer Protocol) é o protocolo base para as aplicações web e clientes (como aplicativos mobile, entre outros) que se conectam a web APIs. Ele permite a comunicação entre clientes e servidores através da internet.


Guia do artigo:

Cliente

É o cliente quem sempre inicia a comunicação com o servidor.

O cliente mais conhecido é o navegador.

Quando acessamos um site pelo navegador, uma requisição é disparada pela internet para o computador no qual esse site está hospedado.

Chamamos as aplicações que agem em nome do usuário, assim como o navegador, de user-agent. A Figura 1 demonstra esse fluxo de dados.

Comunicação entre o usuário e o servidor através da internet e por meio de um user-agent
Figura 1. Comunicação entre o usuário e o servidor através da internet e por meio de um user-agent

Após enviar uma requisição, o user-agent aguarda até que haja uma resposta do servidor e então a comunicação se encerra.

Para obter um novo recurso do servidor o cliente deve iniciar uma nova requisição.

Servidor

O papel do servidor web é receber uma requisição e devolver uma resposta para o cliente.

Geralmente o servidor não envia dados se o cliente não disparar primeiro uma requisição.

O servidor é um ou mais computadores com um único endereço como http://www.devmedia.com.br. Nestes computadores podem ser hospedados documentos, imagens, áudio, vídeo, etc.

Geralmente o servidor também hospeda programas que atendem as requisições dos clientes e as processam. Chamamos esses programas de web server, ou servidor web.

É com um web server que nos comunicamos, sendo o computador no qual ele está instalado parte da infraestrutura que o conecta a internet.

O web server geralmente é capaz de executar aplicações escritas em linguagens como PHP, C#, Java, etc. Na Figura 2 vemos um gráfico que ilustra isso.

Comunicação após o servidor web
Figura 2. Comunicação após o servidor web

Por exemplo, um servidor executando o PHP pode delegar a esse programa a tarefa de atender as requisições criando páginas HTML a partir de scripts escritos nessa linguagem.

Confira também