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:

una persona con un signo de curl

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:

  1. Salida verbose: curl -v https://example.com Este comando proporciona información detallada sobre la solicitud y la respuesta, incluyendo encabezados y detalles de conexión.

  2. Volcado de trazas completo: curl --trace - https://example.com Esto genera un volcado hexadecimal de todos los datos entrantes y salientes, ofreciendo una visión completa de toda la comunicación.

  3. Traza con marcas de tiempo: curl --trace - --trace-time https://example.com Esto añade marcas de tiempo a la salida de la traza, ayudando a analizar problemas relacionados con el tiempo.

  4. Imprimir solo los 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.

  5. 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.

  6. Usar Pantheon Debugger: 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.

  7. 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.

  8. Depurar con netcat: En una terminal: nc -l 1234 En otra: curl http://127.0.0.1:1234 Esto 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

  1. Descarga de archivos: curl puede descargar archivos desde URLs.
  2. Web scraping: curl puede recuperar el contenido de páginas web para propósitos de extracción de datos.
  3. Pruebas de sitios web: curl es útil para verificar si un sitio web es accesible y recuperar su contenido.

Interacciones con APIs

  1. Enviar solicitudes de API: curl soporta varios métodos HTTP (GET, POST, PUT, DELETE) para interactuar con APIs.
  2. 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

  1. Verificar conectividad: curl se puede usar para verificar conexiones de red y solucionar problemas.
  2. Probar DNS: curl permite forzar servidores DNS específicos para solucionar problemas relacionados con DNS.
  3. Inspeccionar encabezados: curl puede mostrar encabezados HTTP, lo cual es útil para la depuración.

Transferencia de datos

  1. Operaciones FTP: curl soporta transferencias de archivos usando el Protocolo de Transferencia de Archivos (FTP).
  2. 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

  1. Conexiones SSL: curl soporta conexiones seguras usando SSL/TLS.
  2. Autenticación: curl puede manejar varios métodos de autenticación, incluyendo autenticación básica y certificados de cliente.

Desarrollo y depuración

  1. Simular diferentes métodos HTTP: curl permite a los desarrolladores probar varios métodos HTTP fácilmente.
  2. 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.

Enlaces útiles