curl es una herramienta de línea de comandos para intercambiar información mediante URLs.
curl es una herramienta de línea de comandos utilizada para transferir archivos a través de diferentes protocolos de red (HTTP, FTP, SCP, etc). Es muy útil tanto para desarrolladores como administradores de sistemas para interactuar con servicios web, probar APIs, descargar archivos y automatizar tareas relacionadas con la transmisión de datos.
El proyecto fue iniciado por Daniel Stenberg en 1997 bajo el nombre original de “httpget”. Daniel sigue liderando el desarrollo del proyecto, que cuenta con contribuciones de una activa comunidad de desarrolladores.
Es Open Source y distribuido bajo la licencia MIT, lo que permite su uso, modificación y distribución sin restricciones significativas. El código fuente de la herramienta está disponible públicamente en GitHub.
Vamos a ver ejemplos prácticos:
Este comando recupera el contenido de una URL especificada.
curl http://example.com
Utiliza la opción -I
para obtener solo los encabezados de la respuesta.
curl -I http://example.com
Puedes enviar datos a un servidor mediante POST especificando los datos con -d
.
curl -X POST -d "param1=valor1¶m2=valor2" http://example.com
Incluye el encabezado Content-Type
para indicar que los datos son JSON.
curl -X POST -H "Content-Type: application/json" -d '{"clave":"valor"}' http://example.com
El método PUT permite actualizar un recurso existente en el servidor.
curl -X PUT -d "param1=valor1¶m2=valor2" http://example.com/recurso
Para seguir redirecciones automáticamente, utiliza la opción -L
.
curl -L http://example.com
La opción -o
guarda el contenido descargado en un archivo especificado.
curl -o archivo_salida.html http://example.com
Para realizar solicitudes autenticadas, utiliza -u
con el formato usuario:contraseña
.
curl -u usuario:contraseña http://example.com
La opción -A
permite establecer un encabezado User-Agent personalizado.
curl -A "Mi-User-Agent" http://example.com
Usa la opción -v
(verbose) para inspeccionar detalles como los encabezados y el contenido transferido.
curl -v http://example.com
Esto es sólo un breve resumen de las utilidades de curl. Para conocer más sobre ella visita la documentación oficial.