Guía de atajos de cURL
Comandos útiles de cUrl con parámetros
Aquí tienes una guía rápida para los comandos más útiles de cURL con sus parámetros:
La imagen anterior fue generada por Flux - modelo de IA de texto a imagen.
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 username:password http://example.com
- Usar archivo .netrc:
curl --netrc-file .netrc http://example.com
Métodos HTTP
- Solicitud POST:
curl -X POST -d 'name=value' http://example.com
- Solicitud PUT:
curl -X PUT -d @file http://example.com
- Método personalizado:
curl -X METHOD http://example.com
Encabezados y datos
- Añadir encabezado personalizado:
curl -H "X-Header: Value" 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 verificación del certificado SSL:
curl -k https://example.com
- Usar certificado de cliente:
curl --cert cert.pem --key key.pem https://example.com
Proxy y red
- Usar un proxy:
curl -x proxysever.server.com:PORT 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 detallado:
curl -v http://example.com
- Escribir la salida en un archivo:
curl -o file.html http://example.com
- Guardar con el nombre del archivo remoto:
curl -O http://example.com/file.zip
Misceláneos
- Reanudar una descarga fallida:
curl -C - -o partial_file.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 config_file http://example.com
Esta guía rápida cubre los comandos de cURL más comúnmente utilizados y sus parámetros, proporcionando una referencia rápida para varias operaciones HTTP y transferencias de datos.
Comandos avanzados de curl
Aquí tienes algunos comandos avanzados de curl para depuración:
-
Salida detallada:
curl -v https://example.com
Este comando proporciona información detallada sobre la solicitud y la respuesta, incluyendo encabezados y detalles de conexión. -
Volcado completo de traza:
curl --trace - https://example.com
Esto muestra 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.com
Esto añade marcas de tiempo a la salida de traza, ayudando a analizar problemas relacionados con el tiempo. -
Mostrar solo encabezados de respuesta:
curl -s -o /dev/null -D - https://example.com
Este comando muestra solo los encabezados de respuesta, útil para un análisis rápido de encabezados. -
Mostrar solo 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 el depurador de Pantheon:
curl -I -H "Pantheon-Debug:1" https://example.com
Este 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.com
Esto asegura el uso del protocolo HTTP/2, lo cual puede combinarse con -I para verificar el soporte de HTTP/2. -
Depurar con netcat: En un terminal:
nc -l 1234
En otro:curl http://127.0.0.1:1234
Esto permite ver exactamente lo que curl está enviando, útil para depurar payloads.
Estos comandos avanzados ofrecen capacidades de depuración poderosas, permitiendo a los desarrolladores inspeccionar varios aspectos de las comunicaciones HTTP y resolver problemas complejos.
Casos de uso comunes de curl
curl es una herramienta versátil de línea de comandos con numerosas aplicaciones. Aquí tienes algunos de los casos de uso más comunes de curl:
Interacciones web
- Descargar archivos: curl puede descargar archivos desde URLs.
- Rastreo web: curl puede recuperar contenido de páginas web para fines de rastreo.
- Pruebas de sitios web: curl es útil para verificar si un sitio web está accesible y recuperar su contenido.
Interacciones con API
- Enviar solicitudes a API: curl admite 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 puede usarse 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 depurar.
Transferencia de datos
- Operaciones FTP: curl admite transferencias de archivos usando el Protocolo de Transferencia de Archivos (FTP).
- Interacciones SMTP: curl puede usarse para enviar correos electrónicos mediante el Protocolo Simple de Transferencia de Correo (SMTP).
Seguridad y autenticación
- Conexiones SSL: curl admite 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 fácilmente varios métodos HTTP.
- Registro detallado: el modo detallado 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 explico cómo puedes usarla para medir varios 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 tomó para obtener el sitio web[2].
Métricas de rendimiento detalladas
Para un análisis más completo, puedes usar curl para medir varias métricas de rendimiento:
curl -s -w 'Prueba del 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 antes de la transferencia:\t%{time_pretransfer}\nTiempo de inicio de la 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 de 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 la página: %{size_download} bytes\nCódigo de respuesta: %{response_code}\nBúsqueda de 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].
Crear un script de prueba de rendimiento
Puedes crear un script simple de bash para automatizar estas pruebas y guardar los resultados:
#!/bin/bash
curl -s -w 'Prueba del 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 antes de la transferencia:\t%{time_pretransfer}\nTiempo de inicio de la 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 de curl y scripts, puedes medir y monitorear eficazmente el rendimiento de un sitio web, ayudándote a identificar posibles cuellos de botella y optimizar los tiempos de carga.