Um cliente HTTP é um processo, geralmente um navegador web, que estabelece uma conexão com o processo servidor com o propósito de enviar uma ou várias mensagens de requisição.
Um servidor HTTP é um processo, geralmente um web server, que aceita requisições na ordem em que elas vão chegando e enviando uma mensagem de resposta para cada requisição feita. Não se esqueça de que na versão 1.1 do protocolo, a relação de cardinalidade entre a requisição e a resposta é de um para um, ou seja, para cada requisição existe uma única resposta.
O protocolo HTTP utiliza uma URI para identificar um recurso e estabelecer uma conexão com o mesmo. Uma vez estabelecida a conexão, as mensagens HTTP seguem o padrão da RFC5322 (Internet Mail) e da RFC 2045 (Multipurpose Internet Mail Extension - MIME).
As mensagens HTTP usam um formato de mensagem genérica descrito na RFC 822 para transferência do dado requerido. Essa mensagem genérica consiste em quatro itens:
Vejamos a seguir cada item.