# curl > Transfere dados entre o computador local e um servidor. > Suporta a maioria dos protocolos de comunicação, incluindo HTTP, HTTPS, FTP, SCP, etc. > Mais informações: . - Faz um pedido HTTP GET e descarrega os conteúdos em `stdout` (saída padrão): `curl {{https://example.com}}` - Faz um pedido HTTP GET, segue redirecionamentos ``3xx` e descarrega os cabeçalhos da resposta e conteúdos para `stdout`: `curl --location --dump-header - {{https://example.com}}` - Baixa um arquivo, salvando a saída no arquivo indicado pela URL: `curl --remote-name {{https://example.com/arquivo.zip}}` - Envia dados codificados por formulário (pedido POST do tipo `application/x-www-form-urlencoded`). Usa `--data @file_name` ou `--data @'-'` para ler da `stdin`: `curl -X POST --data {{'nome=maria'}} {{http://example.com/formulario}}` - Envia um pedido com um cabeçalho adicional, usando um método HTTP personalizado e por meio de um proxy (tal como BurpSuite), ignorando certificados autoassinados inseguros: `curl -k --proxy {{http://127.0.0.1:8080}} --header {{'Authorization: Bearer token'}} --request {{GET|PUT|POST|DELETE|PATCH|...}} {{https://example.com}}` - Envia dados no formato JSON, especificando o cabeçalho de tipo de conteúdo (content-type) apropriado: `curl --data {{'{"nome":"maria"}'}} --header {{'Content-Type: application/json'}} {{http://example.com/usuarios/1234}}` - Passa o certificado do cliente e chave para um recurso, pulando a validação do certificado: `curl --cert {{cliente.pem}} --key {{chave.pem}} --insecure {{https://example.com}}` - Resolve um hostname para um endereço de IP personalizado, com a saída verbosa (similar a editar o arquivo `/etc/hosts` para resolução de DNS personalizada): `curl --verbose --resolve {{example.com}}:{{80}}:{{127.0.0.1}} {{http://example.com}}`