Sobes.tech
Junior

De que componentes é composto um pedido HTTP?

sobes.tech IA

Resposta da IA

A requisição HTTP consiste nos seguintes componentes:

  1. Linha de início (Request Line): Define o tipo de pedido e o recurso. Consiste em:

    • Método HTTP (HTTP Method): A ação que deve ser executada sobre o recurso (por exemplo, GET, POST, PUT, DELETE).
    • Caminho do recurso (Path): A URL do recurso solicitado no servidor.
    • Versão HTTP (HTTP Version): A versão do protocolo HTTP usada para o pedido (por exemplo, HTTP/1.1, HTTP/2.0).
    // Exemplo de linha de início
    GET /index.html HTTP/1.1
    
  2. Cabeçalhos da requisição (Request Headers): Fornecem informações adicionais sobre o cliente, o pedido ou o recurso. Os parâmetros do cabeçalho são apresentados no formato "Nome: Valor". Cabeçalhos principais:

    • Host: O nome de domínio do servidor.
    • User-Agent: Informação sobre o cliente (navegador, SO).
    • Accept: Tipos de mídia que o cliente está disposto a aceitar.
    • Content-Type: Tipo de mídia do conteúdo do corpo do pedido (para métodos PUT, POST).
    • Content-Length: O comprimento do corpo do pedido em bytes.
    • Authorization: Credenciais para autenticação.
    // Exemplos de cabeçalhos de requisição
    Host: www.exemplo.com
    User-Agent: Mozilla/5.0
    Accept: text/html
    
  3. Linha vazia (Empty Line): Separa os cabeçalhos do pedido e o corpo do pedido. É obrigatória, mesmo que não haja corpo.

  4. Corpo do pedido (Request Body): Contém dados enviados ao servidor, como dados de formulário, JSON para pedidos POST/PUT. Não está presente em todos os métodos (por exemplo, ausente para GET).

    // Exemplo de corpo de pedido (para POST/PUT)
    {
      "name": "John Doe",
      "age": 30
    }
    

De forma esquemática, a estrutura de uma requisição HTTP pode ser representada assim:

Componente Descrição Obrigatoriedade
Linha de início Método, caminho do recurso, versão HTTP Sempre
Cabeçalhos da requisição Informação adicional sobre o pedido/o cliente Opcional
Linha vazia Separador Sempre
Corpo do pedido Dados enviados ao servidor Opcional