Skip to content

Flags de curl explicados

Los flags de curl que se usan a diario, agrupados por tarea: dar forma a la petición, definir cabeceras, autenticarse, presentar una identidad, controlar la salida, seguir redirecciones, ajustar la conexión y depurar. Cada fila empareja el flag con una invocación realista.

curl envía una petición HTTP e imprime el cuerpo de la respuesta. La mayor parte de su poder está en los flags: eligen el método, adjuntan cabeceras y datos, gestionan la autenticación y deciden qué se imprime. Se muestra la forma larga donde es más clara; la forma corta es la letra única. Pon las URLs entre comillas para que el shell no se coma la cadena de consulta.

Tabla de referencia · 54 entradas
54 of 54 rows
Forma de la petición
Establece el método HTTP.curl -X POST https://api.test
Añade una cabecera a la petición.curl -H "Accept: application/json" URL
Envía un cuerpo (activa POST y un tipo de contenido por defecto).curl -d "name=Ada" URL
Añade los valores de -d como parámetros de consulta en un GET.curl -G -d "q=hi" URL
Envía datos multipart de formulario (subida de archivos).curl -F "file=@photo.png" URL
Envía datos de formulario con codificación URL aplicada.curl --data-urlencode "name=Ada Lovelace" URL
Sube un archivo con PUT.curl -T big.zip URL
Añade la subida al archivo remoto en lugar de reemplazarlo.curl -a -T log.txt ftp://server.test/logs/log.txt
JSON y APIs
Envía JSON con el tipo de contenido correcto.curl -H "Content-Type: application/json" -d '{"a":1}' URL
Envía el contenido de un archivo como cuerpo.curl -d @body.json URL
Envía JSON sin definir las cabeceras a mano (curl 7.82+).curl --json '{"a":1}' URL
Autenticación
Autenticación Basic HTTP con usuario y contraseña.curl -u ada:s3cr3t URL
Envía un token bearer de OAuth.curl --oauth2-bearer TOKEN URL
Envía cualquier esquema de token a mano.curl -H "Authorization: Bearer TOKEN" URL
Presenta un certificado de cliente y su clave para TLS mutuo.curl --cert client.pem --key key.pem URL
Verifica el servidor contra un único archivo de paquete de CA.curl --cacert ca.pem URL
Verifica el servidor contra un directorio de CA.curl --capath /etc/ssl/certs URL
Envía la petición a través de un proxy.curl -x http://proxy.test:8080 URL
Omite la verificación TLS solo para el salto al proxy.curl -x https://proxy.test:8443 --proxy-insecure URL
Exige TLS 1.3 como versión mínima.curl --tlsv1.3 URL
Identidad
Envía una cadena User-Agent personalizada.curl -A "Mozilla/5.0" URL
Envía una cabecera Referer.curl -e https://example.com/page URL
Envía cookies con la petición.curl -b "session=abc123" URL
Guarda las cookies de la respuesta en un archivo.curl -c cookies.txt URL
Salida
Escribe el cuerpo en un archivo.curl -o page.html URL
Guarda el cuerpo usando el nombre remoto del archivo.curl -O https://site/file.tgz
Imprime las cabeceras de respuesta encima del cuerpo.curl -i URL
Obtiene solo las cabeceras (envía HEAD).curl -I URL
Oculta el medidor de progreso y los errores.curl -s URL
Imprime una cadena de formato tras el cuerpo (tiempos, estado).curl -w "%{http_code}\n" -o /dev/null URL
Termina con código distinto de cero en errores HTTP y omite el cuerpo de error.curl -f URL
Termina con código distinto de cero en errores HTTP pero aun así imprime el cuerpo.curl --fail-with-body URL
Nombra el archivo guardado a partir de la cabecera Content-Disposition.curl -OJ URL
Reanuda una transferencia interrumpida desde donde se detuvo.curl -C - -O URL
Muestra una barra de progreso en lugar del medidor por defecto.curl -# -O URL
Imprime los errores incluso en modo silencioso.curl -sS URL
Escribe las cabeceras de respuesta en un archivo.curl -D headers.txt URL
Pide una respuesta comprimida y la descodifica.curl --compressed URL
Crea los directorios que falten en la ruta de -o.curl -o cache/api/data.json --create-dirs URL
Redirecciones y conexión
Sigue las redirecciones 3xx.curl -L URL
Segundos máximo de espera para la conexión TCP.curl --connect-timeout 5 URL
Segundos máximo para toda la petición.curl --max-time 30 URL
Omite la verificación del certificado TLS.curl -k https://self-signed.test
Reintenta los errores transitorios hasta N veces.curl --retry 3 URL
Reintenta ante cualquier error, no solo los transitorios.curl --retry 3 --retry-all-errors URL
Fuerza la conexión por IPv4 o IPv6.curl -4 URL
Mapea un host y un puerto a una dirección, sin pasar por DNS.curl --resolve api.test:443:127.0.0.1 https://api.test
Vincula la transferencia a una interfaz de red o a una dirección.curl --interface eth0 URL
Transfiere varias URLs al mismo tiempo.curl -Z URL1 URL2
Usa HTTP/2 o HTTP/3 para la transferencia.curl --http3 URL
Emite el cuerpo a medida que llega en lugar de almacenarlo en búfer.curl -N URL
Lee más flags desde un archivo de configuración.curl -K flags.cfg URL
Depuración
Imprime el intercambio completo de petición y respuesta.curl -v URL
Vuelca en hexadecimal todo lo enviado y recibido.curl --trace - URL