Skip to main content

Hypertext Transfer Protocol (HTTP) é um protocolo de rede, da camada de aplicação do modelo OSI, que é utilizado para a transferência de conteúdo na World Wide Web.

HTTP utiliza um modelo client-request/server-response. HTTP é um protocolo sem estado, o que significa que ele não exige que o servidor retenha informações de estado sobre cada usuário para a duração de várias solicitações.

O pedido é enviado com um método de HTTP:

  • GET - usado para recuperar dados , o corpo da solicitação deve ser ignorado.
  • POST - usado para enviar dados para o servidor, o corpo deve manter os dados

Estes são todos os métodos suportados por navegadores mais antigos, mas a especificação HTTP 1.1(en) inclui um pouco mais: HEAD, PUT, DELETE, TRACE, OPTIONS, CONNECT e PATCH.

A resposta é retornada com um código de status(en):

  • 1xx são informativas
  • 2xx indica sucesso, a maioria das páginas terá um status 200
  • 3xx são usados ​​para redirecionamentos
  • Códigos 4xx são usados ​​para erros com o pedido, o mais comum sendo 404 para uma página não encontrada
  • 5xx são usados ​​para erros de servidor

Tanto o pedido e resposta são constituídos por um cabeçalho e um corpo opcional.

O cabeçalho contém uma lista de pares de chave-valores, separadas usando novas linhas e dois pontos, por exemplo, um pedido pode ter cabeçalhos assim:

Proxy- Connection: keep-alive
Referer: url
User-Agent: nome do navegador ou aplicativo cliente
Accept-Encoding: gzip, deflate
Accept-Language: pt-BR

Note que, no exemplo, o pedido é dito ao servidor que a resposta pode ser enviada com o corpo comprimido com gzip ou esvaziar codificação.

A solicitação precisa de um corpo se ele está enviando dados adicionais ao servidor, por exemplo, se o envio de informação entrou para um formulário.

Os cabeçalhos de resposta incluirão informações informando o cliente como lidar com os dados de resposta, por exemplo, se eles podem armazenar em cache os dados (e por quanto tempo).

O corpo da resposta terá os dados solicitados, como o HTML de uma página web ou dados de imagem.

HTTP é usado pelos navegadores para recuperar o conteúdo da web, mas também pode ser usado para APIs de dados. Por exemplo, como o SOAP ou serviço REST.