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.
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 //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.
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.