# Construtor de comandos curl

> Escolha qualquer um dos 27 protocolos que o curl fala, preencha campos que se adaptam ao protocolo e receba o comando exato, com cada flag explicada e avisos de segurança. O inverso do tradutor de requisições HTTP: aquele lê um comando, este escreve um.

- Tool: https://ronutz.com/pt-BR/tools/curl-command-builder
- Family: Web e HTTP

---

## O que a ferramenta faz

Escolha um protocolo, preencha campos que se adaptam a ele e veja o comando `curl` exato se montar ao vivo. Cada flag emitida é explicada logo abaixo do comando, e tudo que tem implicação de segurança recebe um aviso: `-k`, protocolos em texto claro, senha colocada na linha de comando, ou o padrão form-encoded do `-d` do `curl` quando o corpo parece JSON. Nada é executado e nada sai do navegador.

## Todos os 27 protocolos

O construtor cobre a lista completa de protocolos da versão atual da ferramenta `curl`, conforme publicada em curl.se: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, MQTTS, POP3, POP3S, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS e WSS. Selecionar um protocolo abre um explicador curto: o que ele é, sua porta padrão e se roda em texto claro, dentro de TLS, ou começa em texto claro com caminho de upgrade. O formulário então mostra apenas o que aquele protocolo entende: HTTP ganha métodos, cabeçalhos, corpo e formulários; SMTP ganha envelope; MQTT ganha tópico; FTP ganha listagem e upload; `file://` ganha só um caminho.

## Uma tabela, uma verdade

Os painéis explicadores e o montador do comando leem a mesma tabela de capacidades. Isso é proposital: o texto que ensina o que um protocolo faz e o código que monta o comando não podem divergir, porque são o mesmo dado.

## Determinístico por construção

Entradas idênticas sempre produzem um comando idêntico byte a byte: as flags saem em uma única ordem canônica, e os valores recebem escape POSIX de aspas simples apenas quando necessário. Onze vetores dourados travam esse comportamento, incluindo a regra de que `-d` implica POST (então nunca sai um `-X POST` redundante) e a sequência de escape `'\''`. As aspas seguem shells POSIX; uma nota na ferramenta avisa, porque cmd.exe e PowerShell jogam com outras regras.

## O inverso do tradutor

Esta ferramenta escreve comandos `curl`; o [tradutor de requisições HTTP](https://ronutz.com/pt-BR/tools/http-request-translator) os lê. Monte um comando aqui, ou cole um lá para vê-lo explicado flag por flag e traduzido para fetch, HTTP cru, HTTPie e Python requests.

## Standards and references

- [curl - man page (protocols and options)](https://curl.se/docs/manpage.html)
- [curl - How To Use (supported protocol list)](https://curl.se/docs/manual.html)
- [everything curl - the protocols curl speaks](https://everything.curl.dev/protocols/curl.html)

## Related reading

- [Os 27 protocolos que o curl fala](https://ronutz.com/pt-BR/learn/curl-protocols-beyond-http.md): O curl é conhecido como ferramenta de HTTP, mas a versão atual fala 27 esquemas de URL: transferência de arquivos por FTP, SFTP e SMB, e-mail por SMTP, POP3 e IMAP, publish-subscribe MQTT, consultas LDAP e relíquias como Gopher, DICT e Telnet. Conhecer o mapa, e saber quais esquemas começam em texto claro, muda a forma de usar a ferramenta.
