Inicio > Gestión de red > curl

curl: Herramienta versátil para transferencia/prueba de datos basada en URL

Una potente herramienta de línea de comandos para intercambiar datos con servidores usando URLs. Soporta varios protocolos como HTTP/HTTPS, FTP/FTPS, SFTP, y se utiliza ampliamente para pruebas de API, carga/descarga de archivos y resolución de problemas.

¿Qué es curl?

curl es la abreviatura de 'Client URL', una utilidad CLI que utiliza la sintaxis URL para enviar/recibir datos. Se usa en una amplia gama de áreas como desarrollo web, pruebas de API, automatización CI/CD y resolución de problemas operativos.

Características clave

  • Varios protocolos: HTTP/HTTPS, FTP/FTPS, SFTP, LDAP, SMTP/SMTPS, etc. (depende de las opciones de compilación).
  • Control HTTP: Control granular de métodos, encabezados, cookies, compresión, HTTP/2, redirecciones, tiempos de espera, reintentos, etc.
  • Carga/Descarga: Descarga de archivos (-o/-O), reanudación de descargas (-C -), carga de formularios (-F), carga de un solo archivo (-T).
  • Seguridad: Verificación de certificados TLS (habilitada por defecto), especificación de raíz de confianza (--cacert), certificado de cliente (--cert/--key).
  • Amigable con la automatización: Salida silenciosa (-s), salir en caso de fallo (-f), salida formateada (-w), adecuado para scripts.

Opciones principales (Shell)

Básicamente, se requiere la URL de destino de la solicitud. Se pueden enumerar varias URLs separadas por espacios o leerlas desde un archivo (@file).

1. Solicitudes básicas y descarga

2. Métodos HTTP y transferencia de datos

3. Encabezados, autenticación, cookies

4. Control de salida/Fiabilidad

5. Seguridad/TLS y Proxy/Diagnóstico

6. Protocolo/Versión

7. Ayuda/Versión

Comando generado:

Combina los comandos.

Descripción:

`curl` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de escenarios de uso (Shell)

Patrones de solicitud de uso frecuente en la práctica.

Mostrar contenido de página web

curl https://example.com

Solicitud GET básica.

Descargar archivo (seguir redirecciones)

curl -O -L https://wordpress.org/latest.zip

-O nombre de archivo original, -L seguir redirecciones.

GET JSON + formato bonito

curl -s https://api.github.com/users/google | jq

Análisis/mejora de legibilidad con jq.

POST JSON

curl -X POST -H "Content-Type: application/json" -d '{"username":"test"}' https://api.example.com/users

Especificar encabezados y cuerpo.

Carga de archivo de formulario (multipart)

curl -F "upload_file=@./my-image.png" https://example.com/upload

Nombre de campo=upload_file, especificar ruta de archivo con @.

Autenticación con token Bearer

curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://api.example.com/me

Uso del encabezado Authorization.

Ver solo encabezados de respuesta

curl -I https://google.com

Útil para diagnosticar el estado del servicio/caché.

Salir con código no cero en caso de fallo + silencioso

curl -sSf https://example.com/health

Combinación -sS -f: amigable con scripts.

Tiempo de espera + reintento

curl --connect-timeout 5 --max-time 20 --retry 3 --retry-all-errors https://example.com/api

Respuesta a redes inestables.

Probar con IP específica (--resolve)

curl --resolve 'api.example.com:443:203.0.113.10' https://api.example.com/status

Prueba de bypass de DNS (manteniendo SNI).

Instalación

La mayoría de las veces viene preinstalado; si no, se instala mediante paquete.

Debian/Ubuntu

sudo apt update && sudo apt install -y curl

RHEL/CentOS/Fedora

sudo dnf install -y curl

Arch Linux

sudo pacman -S --needed curl

Consejos y precauciones

Consejos útiles

  • curl vs wget: wget es fuerte en descargas grandes/recursivas, curl en interacción con API/control granular.
  • Comillas: Se recomienda encerrar JSON/caracteres especiales en -d/-H con comillas simples.
  • Respuesta comprimida: Usar --compressed descomprime automáticamente si el servidor lo soporta, reduciendo el volumen de datos transferidos.
  • Proxy: El proxy HTTP se configura con -x, SOCKS5 con --socks5.
  • Precaución de seguridad (-k): -k/--insecure solo debe usarse para desarrollo/pruebas. En producción, se recomienda configurar una raíz de confianza (--cacert).

comandos relacionados

Son comandos que son funcionalmente similares o que se usan juntos con frecuencia.



Comandos de la misma categoría