Hoja de referencia de cURL
Comandos útiles de cURL con parámetros
Aquí tienes una hoja de referencia de los comandos de cURL más útiles con sus parámetros:

La imagen de arriba fue generada por Flux - modelo de IA de texto a imagen.
cURL es una herramienta esencial de línea de comandos para realizar solicitudes HTTP y transferir datos. Para una guía completa sobre herramientas de desarrollo, incluyendo Git, Docker, VS Code, bash, Terraform, PostgreSQL, GitHub Actions y gestión de paquetes de Linux, consulta Herramientas de Desarrollo: La guía completa para flujos de trabajo de desarrollo moderno.
Uso básico de cURL
- Descargar un archivo:
curl http://example.com/file.zip -o file.zip - Descargar múltiples archivos:
curl -O URL1 -O URL2 - Seguir redirecciones:
curl -L http://example.com/file - Mostrar solo encabezados:
curl -I http://example.com
Autenticación
- Autenticación básica:
curl -u usuario:contraseña http://example.com - Usar archivo .netrc:
curl --netrc-file .netrc http://example.com
Métodos HTTP
- Solicitud POST:
curl -X POST -d 'nombre=valor' http://example.com - Solicitud PUT:
curl -X PUT -d @archivo http://example.com - Método personalizado:
curl -X MÉTODO http://example.com
Encabezados y datos
- Agregar encabezado personalizado:
curl -H "X-Header: Valor" http://example.com - Enviar datos JSON:
curl -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com - Enviar datos de formulario:
curl -F "key=value" -F "file=@localfile" http://example.com
Opciones SSL/TLS
- Ignorar la verificación del certificado SSL:
curl -k https://example.com - Usar certificado del cliente:
curl --cert cert.pem --key key.pem https://example.com
Proxy y red
- Usar un proxy:
curl -x proxysever.server.com:PUERTO http://example.com - Limitar la velocidad de descarga:
curl --limit-rate 1000B -O http://example.com/file
Control de salida
- Modo silencioso:
curl -s http://example.com - Modo verbose:
curl -v http://example.com - Escribir la salida en un archivo:
curl -o file.html http://example.com - Guardar con el nombre de archivo remoto:
curl -O http://example.com/file.zip
Diversos
- Reanudar una descarga fallida:
curl -C - -o archivo_parcial.zip http://example.com/file.zip - Establecer un tiempo de espera:
curl --connect-timeout 10 http://example.com - Usar un archivo de configuración:
curl -K archivo_config http://example.com
Esta hoja de referencia cubre los comandos de cURL más comúnmente utilizados y sus parámetros, ofreciendo una referencia rápida para diversas operaciones HTTP y transferencias de datos.
Comandos avanzados de cURL
Aquí tienes algunos comandos avanzados de curl para la depuración:
-
Salida verbose:
curl -v https://example.comEste comando proporciona información detallada sobre la solicitud y la respuesta, incluyendo encabezados y detalles de conexión. -
Volcado de trazas completo:
curl --trace - https://example.comEsto genera un volcado hexadecimal de todos los datos entrantes y salientes, ofreciendo una visión completa de toda la comunicación. -
Traza con marcas de tiempo:
curl --trace - --trace-time https://example.comEsto añade marcas de tiempo a la salida de la traza, ayudando a analizar problemas relacionados con el tiempo. -
Imprimir solo los encabezados de respuesta:
curl -s -o /dev/null -D - https://example.comEste comando muestra solo los encabezados de respuesta, útil para un análisis rápido de encabezados. -
Imprimir solo los encabezados de solicitud:
curl -v -s -o /dev/null --stderr - https://example.com | grep '^>'Este comando complejo filtra solo los encabezados de solicitud, útil para inspeccionar lo que se está enviando. -
Usar Pantheon Debugger:
curl -I -H "Pantheon-Debug:1" https://example.comEste comando utiliza el encabezado de depuración de Pantheon para obtener información adicional sobre una solicitud, útil para sitios alojados en Pantheon. -
Forzar el protocolo HTTP/2:
curl --http2 https://example.comEsto asegura el uso del protocolo HTTP/2, lo cual puede combinarse con -I para verificar el soporte de HTTP/2. -
Depurar con netcat: En una terminal:
nc -l 1234En otra:curl http://127.0.0.1:1234Esto te permite ver exactamente lo que curl está enviando, útil para la depuración de cargas útiles.
Estos comandos avanzados ofrecen capacidades de depuración potentes, permitiendo a los desarrolladores inspeccionar diversos aspectos de las comunicaciones HTTP y solucionar problemas complejos.
Casos de uso comunes de cURL
curl es una herramienta de línea de comandos versátil con numerosas aplicaciones. Aquí tienes algunos de los casos de uso más comunes para curl:
Interacciones web
- Descarga de archivos: curl puede descargar archivos desde URLs.
- Web scraping: curl puede recuperar el contenido de páginas web para propósitos de extracción de datos.
- Pruebas de sitios web: curl es útil para verificar si un sitio web es accesible y recuperar su contenido.
Interacciones con APIs
- Enviar solicitudes de API: curl soporta varios métodos HTTP (GET, POST, PUT, DELETE) para interactuar con APIs.
- Probar puntos finales de API: curl proporciona una forma rápida de probar y depurar puntos finales de API sin necesidad de un cliente de API dedicado.
Solución de problemas de red
- Verificar conectividad: curl se puede usar para verificar conexiones de red y solucionar problemas.
- Probar DNS: curl permite forzar servidores DNS específicos para solucionar problemas relacionados con DNS.
- Inspeccionar encabezados: curl puede mostrar encabezados HTTP, lo cual es útil para la depuración.
Transferencia de datos
- Operaciones FTP: curl soporta transferencias de archivos usando el Protocolo de Transferencia de Archivos (FTP).
- Interacciones SMTP: curl se puede usar para enviar correos electrónicos a través del Protocolo Simple de Transferencia de Correo (SMTP).
Seguridad y autenticación
- Conexiones SSL: curl soporta conexiones seguras usando SSL/TLS.
- Autenticación: curl puede manejar varios métodos de autenticación, incluyendo autenticación básica y certificados de cliente.
Desarrollo y depuración
- Simular diferentes métodos HTTP: curl permite a los desarrolladores probar varios métodos HTTP fácilmente.
- Registro verbose: el modo verbose de curl proporciona información detallada sobre el ciclo de solicitud-respuesta, ayudando en la depuración.
Estos casos de uso demuestran la flexibilidad de curl como herramienta para interacciones web, pruebas de API, solución de problemas de red y tareas de desarrollo.
Pruebas de rendimiento de sitios web con cURL
curl es una herramienta poderosa para probar el rendimiento de sitios web. Aquí te explicamos cómo puedes usarla para medir diversos aspectos de la velocidad de carga de un sitio web:
Prueba básica de rendimiento
Para obtener una medida simple del tiempo de carga de un sitio web, usa este comando:
curl -o /dev/null -s -w "Tiempo Total: %{time_total}s\n" "https://example.com"
Este comando mostrará el tiempo total que tardó en obtenerse el sitio web[2].
Métricas de rendimiento detalladas
Para un análisis más completo, puedes usar curl para medir múltiples métricas de rendimiento:
curl -s -w 'Probando el tiempo de respuesta del sitio web para :%{url_effective}\n\nTiempo de búsqueda:\t\t%{time_namelookup}\nTiempo de conexión:\t\t%{time_connect}\nTiempo pre-transferencia:\t%{time_pretransfer}\nTiempo de inicio de transferencia:\t%{time_starttransfer}\n\nTiempo Total:\t\t%{time_total}\n' -o /dev/null https://example.com
Este comando proporciona un desglose de las diferentes etapas del proceso de carga, incluyendo el tiempo de búsqueda DNS, el tiempo de conexión y el tiempo total[1].
Métricas avanzadas
Para un análisis aún más detallado, puedes incluir métricas adicionales:
curl -o /dev/null -w "Versión HTTP: %{http_version}\nTamaño de página: %{size_download} bytes\nCódigo de respuesta: %{response_code}\nBúsqueda DNS: %{time_namelookup} seg\nTiempo de conexión: %{time_connect} seg\nTiempo hasta el primer byte: %{time_starttransfer} seg\nTiempo Total: %{time_total} seg\n" -s https://example.com
Este comando incluye información sobre la versión HTTP, el tamaño de la página y el código de respuesta[3].
Benchmarking de múltiples solicitudes
Para probar la consistencia o monitorear el rendimiento con el tiempo, puedes usar un bucle para hacer múltiples solicitudes:
for i in {1..5}; do curl -o /dev/null -s -w "Solicitud $i Tiempo Total: %{time_total}\n" https://example.com; done
Esto ejecutará la prueba cinco veces y mostrará el tiempo total para cada solicitud[3].
Creación de un script de prueba de rendimiento
Puedes crear un script de bash simple para automatizar estas pruebas y guardar los resultados:
#!/bin/bash
curl -s -w 'Probando el tiempo de respuesta del sitio web para :%{url_effective}\n\nTiempo de búsqueda:\t\t%{time_namelookup}\nTiempo de conexión:\t\t%{time_connect}\nTiempo pre-transferencia:\t%{time_pretransfer}\nTiempo de inicio de transferencia:\t%{time_starttransfer}\n\nTiempo Total:\t\t%{time_total}\n' -o /dev/null URL > webspeedtest_"$(date)"
Reemplaza “URL” con el sitio web que deseas probar. Este script guardará los resultados en un archivo con marca de fecha[5].
Al usar estos comandos y scripts de curl, puedes medir y monitorear efectivamente el rendimiento del sitio web, lo que te ayudará a identificar posibles cuellos de botella y optimizar los tiempos de carga.