Protocolo HTTP

Posted by Luciano Cunha on November 13, 2023
Tags: web

Protocolos, pedidos e respostas

A web é essencialmente um conjunto de computadores interligados. É por meio dessa interligação que essas máquinas se comunicam e trocam documentos entre si.

A arquitetura predominantemente utilizada é conhecida como cliente-servidor. Ou seja, o cliente faz um pedido, e o servidor responde.

Desta forma, a comunicação dá-se basicamente atráves de protocolos, pedidos e respostas (requests e responses).

O protocolo mais comum é o HTTP, que define algumas regras para que essa comunicação aconteça. Dentre essas regras, o protocolo HTTP define um conjunto de verbos que especificam as ações capazes de realizar essa comunicação e troca de informações.

A mensagem do HTTP

A mensagem transmitida pelo protocolo HTTP possui vários componentes, que de maneira geral, incluem:

  • Requisição:
  • especificação do método
  • alvo da requisição
  • versão do HTTP
  • Resposta:
  • Protocolo e versão
  • Status da resposta

A mensagem transmitirá também vários outros parâmetros. Além disso, dependendo do método, a mensagem terá um corpo, necessário para o processamento no servidor.

Abaixo, um exemplo de como pode ser uma mensagem de request:

GET / HTTP/1.1
Host: localhost
... Outros parâmetros

e um modelo de como pode ser uma mensagem de response:

HTTP/1.1 200 OK
... outros parâmetros

Entre os parâmetros de envio, podemos destacar um que é o formato da resposta. Quando o cliente requisita algo, ele pode definir ao servidor o formato da resposta que ele espera. Esse formato é definido pelo parâmetro Accept.

Entre os parâmetros de resposta, podemos destacar um que é o formato do dado enviado. Quando o servidor quer informar ao cliente o formato da resposta, ele pode utilizar o parâmetro Content-Type.

Métodos HTTP

Os métodos mais comuns do HTTP e suas utilizações de forma mais genéricas são:

  • GET: utilizado para requisições ao servidor
  • POST: utilizado para enviar dados ao servidor
  • PUT: utilizado para atualizar dados no servidor
  • DELETE: utilizado para remover dados do servidor

É através destes métodos que as solicitações ao servidor vão ocorrer no HTTP. Além disso, o servidor poderá utilizar códigos para enviar respostas ao cliente.

Esses códigos, variam de acordo com o status dessa resposta.

Os códigos mais comuns nessa comunicação são:

  • 2xx: OK, requisição respondida com sucesso.
  • 3xx: Redirecionamento, em razão de alguns recurso que foi movido ou atualiado.
  • 4xx: Erro no cliente, indiciando algum problema na requisição realizada pelo cliente.
  • 5xx: Server error, indicando que existe algum erro no processamento no servidor.

Stateless

Uma característica importante do HTTP é que ele é stateless. Isso quer dizer que ele não mantém estado.

Por isso, existem algumas formas de contornar essa característica, a fim de dizer ao servidor que um cliente específico já acessou ou que deveria ter acesso a um determinado recurso. São elas:

  • Sessão: tempo de utilização da aplicação
  • Cookies: arquivo associado ao domínio

Além do HTTP 1.1

Vale lembrar que a web está sempre em evolução, e já estáão em operação novas versões do protocolo HTTP, como a 2 e 3.

Consulte os links abaixo para mais detalhes:

Para saber mais