[Pular para o conteúdo principal](#main-content)

[![Logo Bendev](/images/logo-branco.png)](/)

-   [Trabalhos](/projetos)
-   [Sobre](/sobre)
-   [Escrita](/blog)
-   [Aprendizado](/learning)
-   [Referência](/reference)
-   [Imprensa](/entrevistas)
-   [Contato](/contato)

PTENES

[HTTP](/blog/tag/http)[Terminal](/blog/tag/terminal)

# Como depurar uma API com curl e ver status e cabeçalhos

[![Bendev Junior](/images/bendev.jpg)Bendev Junior](/sobre)Publicado em 15 de novembro de 2026 às 09:00 GMT-41 min de leitura[Ver Web Story 9:16](/stories/curl-depurar-http-status-headers)

![Como depurar uma API com curl e ver status e cabeçalhos](/images/blog-covers/curl-depurar-http-status-headers.svg)

A aplicação reclama de JSON inválido, mas a API deveria devolver uma lista. Antes de investigar o parser, confira o status e o Content-Type. Um proxy pode estar devolvendo HTML de erro ou redirecionando a chamada para uma página de login.

```sh
curl --silent --show-error \
  --dump-header headers.txt \
  --output response.txt \
  --write-out 'HTTP %{http_code} em %{time_total}s\n' \
  https://api.example.com/items
```

Veja o arquivo de cabeçalhos e só depois abra o corpo. Um 200 com text/html e um 401 com application/json apontam para caminhos diferentes. Por padrão, o curl não segue redirecionamentos e pode terminar com sucesso mesmo diante de um status 4xx ou 5xx. Para automações que precisam falhar nesses casos e ainda guardar o corpo, use --fail-with-body se sua versão oferece a opção.

Se usar --verbose para reproduzir uma chamada autenticada, revise a saída antes de compartilhá-la. Cabeçalhos e cookies podem conter credenciais.

[Documentação de referência](https://curl.se/docs/manpage.html) · [Como cancelar fetch e limitar o tempo de uma requisição](/blog/javascript-fetch-timeout-cancelamento)

## Interprete a resposta inteira

Um código 3xx indica um redirecionamento, mas o destino só fica claro ao conferir Location. Um 401 normalmente pede autenticação, enquanto 403 indica que a operação não foi autorizada; as APIs podem definir detalhes próprios. Um 204 não tem corpo. Validar Content-Type e status antes de chamar um parser reduz o risco de atribuir uma página de erro a um defeito do JSON.

Se precisa seguir redirects, use a opção correspondente e limite o número de saltos. Em uma API autenticada, confira se cabeçalhos sensíveis não são encaminhados a outro host. A opção para incluir cabeçalhos pode misturá-los com o corpo, então use dump-header e output quando o resultado precisa ser processado por outra ferramenta. Para teste de TLS, prefira corrigir a cadeia de certificados a desativar a validação.

## Reduza a reprodução ao mínimo

Remova headers que não afetam o defeito e substitua tokens por credenciais fictícias antes de compartilhar o comando. Verbose pode exibir cabeçalhos de autorização, cookies e detalhes de proxy. Revise esses dados antes de anexar um log a uma Issue. Quando compara ambientes, mantenha o mesmo método, corpo e cabeçalhos e registre host e horário sem expor dados pessoais.

Teste primeiro um endpoint público e depois o autenticado. Compare o código e os cabeçalhos recebidos, não só a mensagem do terminal. Se a requisição usa proxy, veja se a resposta veio do serviço esperado e se o proxy acrescentou uma página de bloqueio ou redirecionamento.

Em shells diferentes, algumas opções e formas de escape precisam de atenção. Mantenha o corpo de um POST em arquivo quando ele contém aspas, acentos ou quebra de linha. Assim, o comando fica mais legível e você reduz erros de interpretação do shell. Ao guardar a saída para comparação, anote o método e a URL consultados, retire credenciais do arquivo e não envie o arquivo para o Git se houver dados de usuário. Uma reprodução mínima é mais útil do que um log completo com segredo.

## Leia também

Mais artigos sobre o tema.

-   [ETag forte e fraco em If-Match e If-None-MatchLer artigo](/blog/http-etag-fraco-forte-if-match)
-   [HTTP Range e If-Range para retomar um downloadLer artigo](/blog/http-range-if-range-retomar-download)
-   [JSON Patch com índices de array, test e If-MatchLer artigo](/blog/json-patch-indices-test-if-match)

[Abrir Web Story](/stories/curl-depurar-http-status-headers)[Ver todos os artigos](/blog)[Projetos](/projetos)[Livros](/livros)[Sobre Bendev](/sobre)

![Bendev Junior](/images/bendev.jpg)

Bendev Junior

Tech Lead e Arquiteto de Software.

[Voltar ao blog](/blog)

![Logo Bendev](/images/logo-branco.png)

© 2026 Bendev Junior. Todos os direitos reservados.

### Links Rápidos

-   [Trabalhos](/projetos)
-   [Sobre](/sobre)
-   [Escrita](/blog)
    -   [Livros](/livros)
-   [Imprensa](/entrevistas)
-   [Contato](/contato)

### Redes Sociais

[LinkedIn de Bendev Junior](https://linkedin.com/in/bendevjunior)[GitHub de Bendev Junior](https://github.com/bendevjunior)[Instagram de Bendev Junior](https://instagram.com/bendevoficial)
