Skip to content
Latchkey

O Que É HTTP? O Protocolo Por Trás das Requisições Web

HTTP, o Hypertext Transfer Protocol, é a linguagem requisição-resposta que navegadores, APIs e pipelines de CI usam para pedir dados a um servidor e receber uma resposta.

Toda vez que um pipeline baixa um pacote, chama uma API de deploy ou faz o ping de um health check, ele fala HTTP. O protocolo define como um cliente formula uma requisição, como um servidor responde e o que o status, os headers e o body de cada mensagem significam. Entender HTTP torna as falhas de pipeline muito mais fáceis de ler, porque a maioria dos erros de rede em CI aparece como respostas HTTP.

Como uma requisição e uma resposta são estruturadas

Uma requisição HTTP tem um método (GET, POST, PUT, DELETE), um path, um conjunto de headers e um body opcional. O servidor responde com um status code, headers de resposta e geralmente um body. Esse par requisição-resposta é a unidade de quase toda comunicação web.

Métodos HTTP

  • GET recupera dados sem alterar o estado do servidor.
  • POST cria ou envia dados.
  • PUT e PATCH atualizam recursos existentes.
  • DELETE remove um recurso.

Stateless por design

HTTP é stateless: cada requisição é independente e o servidor não guarda memória de requisições anteriores, a menos que você adicione cookies ou tokens. É por isso que as chamadas de API em CI precisam enviar credenciais em cada requisição, em vez de fazer login uma única vez.

Versões do HTTP

HTTP/1.1 abre uma conexão por stream de requisição, HTTP/2 multiplexa várias requisições em uma conexão, e HTTP/3 roda sobre QUIC para menor latência. A maioria das ferramentas de CI negocia a melhor versão automaticamente, mas incompatibilidades podem ocasionalmente causar travamentos confusos.

Onde o HTTP aparece em CI/CD

Instalações de pacotes, pulls de registries de containers, uploads de artifacts, entregas de webhooks e chamadas de API de deploy são todos HTTP por baixo dos panos. Quando um deles falha, o status code HTTP é sua primeira pista: um 4xx aponta para sua requisição, um 5xx aponta para o servidor e um erro de conexão aponta para a rede.

Falhas HTTP transitórias em pipelines

Uma instabilidade momentânea pode derrubar uma conexão no meio de uma requisição, produzindo um timeout ou reset em vez de um status code limpo. Essas falhas HTTP transitórias geralmente são seguras de repetir. Nos runners gerenciados da Latchkey, instabilidades breves de rede para endpoints comuns são repetidas automaticamente, então uma única requisição perdida não falha o job inteiro.

Principais conclusões

  • HTTP é o protocolo requisição-resposta stateless por trás de quase todo o tráfego web e de API.
  • Os métodos descrevem a intenção e os status codes descrevem o resultado de cada requisição.
  • Em CI, a maioria das operações de rede é HTTP, então o status code é a primeira pista de debugging.

Guias relacionados