# curl > Trasferisci dati da o ad un server. > Supporta la maggior parte dei protocolli, tra cui HTTP, HTTPS, FTP, SCP, etc. > Maggiori informazioni: . - Esegue una richiesta HTTP GET e stampa il contenuto in `stdout`: `curl {{https://example.com}}` - Esegue una richiesta HTTP GET, [L] segue eventuali reindirizzamenti `3xx` e [D] stampa il contenuto e la intestazione della risposta su `stdout`: `curl --location --dump-header - {{https://example.com}}` - Scarica un file salvando l'[O]utput con lo stesso nome indicato nell'URL: `curl --remote-name {{https://example.com/nome_file.zip}}` - Invia [d]ati form-encoded (con una richiesta POST di tipo `application/x-www-form-urlencoded`). Utilizza `--data @file_name` oppure `--data @'-'` per leggere da `stdin`: `curl -X POST --data {{'name=mario'}} {{http://example.com/form}}` - Invia una richiesta con una intestazione aggiuntiva utilizzando un metodo HTTP personalizzato attraverso un pro[x]y (come BurpSuite) ignorando i certificati autofirmati non sicuri: `curl -k --proxy {{http://127.0.0.1:8080}} --header {{'Authorization: Bearer token'}} --request {{GET|PUT|POST|DELETE|PATCH|...}} {{https://example.com}}` - Invia dati in formato JSON, specificando la [H] intestazione content-type appropriata: `curl --data {{'{"name":"mario"}'}} --header {{'Content-Type: application/json'}} {{http://example.com/users/1234}}` - Invia il certificato client e la chiave per una risorsa omettendo la validazione del certificato: `curl --cert {{cliente.pem}} --key {{chiave.pem}} --insecure {{https://example.com}}` - Risolve un hostname con un indirizzo IP personalizzato con un output [v] dettagliato (simile alla modifica del file `/etc/hosts` per la risoluzione di un DNS personalizzato): `curl --verbose --resolve {{example.com}}:{{80}}:{{127.0.0.1}} {{http://example.com}}`