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:

una persona con una señal de curl

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:

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

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

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

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

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

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

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

  1. Descargar archivos: curl puede descargar archivos desde URLs.
  2. Rastreo web: curl puede recuperar contenido de páginas web para fines de rastreo.
  3. Pruebas de sitios web: curl es útil para verificar si un sitio web está accesible y recuperar su contenido.

Interacciones con API

  1. Enviar solicitudes a API: curl admite 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 puede usarse 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 depurar.

Transferencia de datos

  1. Operaciones FTP: curl admite transferencias de archivos usando el Protocolo de Transferencia de Archivos (FTP).
  2. Interacciones SMTP: curl puede usarse para enviar correos electrónicos mediante el Protocolo Simple de Transferencia de Correo (SMTP).

Seguridad y autenticación

  1. Conexiones SSL: curl admite 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 fácilmente varios métodos HTTP.
  2. 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.

Enlaces útiles