Geekflare recibe el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliación de los enlaces de compra en este sitio.
En Linux y Redes de ordenadores Última actualización: 25 de septiembre de 2023
Compartir en:
Escáner de seguridad de aplicaciones web Invicti - la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

cURL es una herramienta de línea de comandos para obtener o enviar datos utilizando la sintaxis URL.

Si usted está trabajando como desarrollador o en la función de apoyo, debe ser consciente de cURL uso de comandos para solucionar problemas de aplicaciones web. cURL es una utilidad multiplataforma significa que usted puede utilizarla en Windows, MAC y UNIX.

A continuación se indican algunas de las sintaxis más utilizadas con un ejemplo para ayudarle.

Verifique si puede conectarse a la URL

Si está trabajando en un sistema UNIX e intenta conectar la URL externa, lo primero que debe hacer es comprobar si puede acceder a la URL a través de curl.

curl suurl.com

No arrojará ninguna salida. Sin embargo, si el servidor no puede conectarse, entonces obtendrá errores como que no se pudo resolver el host.

[root@gf-lab tmp]# curl helloitdoesntexist.com
curl: (6) No se pudo resolver el host: helloitdoesntexist.com; Error desconocido
[root@gf-lab tmp]#

Guardar la salida URL/URI en un archivo

Si tiene que guardar el contenido de la URL o URI en un archivo específico, puede utilizar la siguiente sintaxis

curl https://yoururl.com > suurl.html

ej:

[root@gf-lab tmp]# curl https://gf.dev > /tmp/gfhtml
 % Total % Received % Xferd Average Speed Time Time Time Time Current
 Dload Upload Total Spent Left Speed
100 18557 0 18557 0 0 72565 0 --:--:--:--:--:--:--:--:-- 72772
[root@gf-lab tmp]#

El ejemplo anterior guardará todo el contenido de gf.dev en /tmp/gf.html

Mostrar encabezado de solicitud y respuesta

Si está teniendo problemas y desea validar, está obteniendo la cabecera de solicitud y la respuesta esperada.

curl -v suurl.com

Ej:

[root@gf-lab tmp]# curl -v https://geekflare.com
* A punto de conectarse() a geekflare.com puerto 443 (#0)
* Probando 104.25.134.107...
* Conectado a geekflare.com (104.25.134.107) puerto 443 (#0)
* Inicializando NSS con certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
 CApath: none
* Conexión SSL usando TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
* Certificado del servidor:
* subject: CN=ssl371609.cloudflaressl.com,OU=PositiveSSL Multi-Domain,OU=Domain Control Validated
* fecha de inicio: 07 de noviembre 00:00:00 2019 GMT
* fecha de caducidad: 15 de mayo 23:59:59 2020 GMT
* nombre común: ssl371609.cloudflaressl.com
* emisor: CN=COMODO ECC Domain Validation Secure Server CA 2,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: geekflare.com
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Sat, 09 Nov 2019 19:41:37 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Set-Cookie: __cfduid=d2ce6cd359ebc0b6eb5ff3a454ed042021573328497; expires=Sun, 08-Nov-20 19:41:37 GMT; path=/; domain=.geekflare.com; HttpOnly; Secure
< Vary: Accept-Encoding
< Link: <https://geekflare.com/wp-json/>; rel="https://api.w.org/"
< Link: <https://geekflare.com/>; rel=shortlink
< X-SRCache-Fetch-Status: HIT
< X-SRCache-Store-Status: BYPASS
< X-Frame-Options: SAMEORIGIN
< X-Powered-By: EasyEngine v4.0.12
< Via: 1.1 google
< CF-Cache-Status: DYNAMIC
< Strict-Transport-Security: max-age=15552000; preload
< X-Content-Type-Options: nosniff
< Alt-Svc: h3-23=":443"; ma=86400
< Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
< Servidor: cloudflare
< CF-RAY: 533243e4bcd4bbf4-LHR
<

Descargar a una velocidad límite

Si está trabajando en la optimización y desea ver cuánto tiempo tarda en descargarse a una velocidad determinada, puede:-

curl --limit-rate 2000B

Ej:

curl --limit-rate 2000B https://gf.dev

Utilizar un proxy para conectarse

Muy práctico si está trabajando en el servidor DMZ y necesita conectarse al mundo exterior utilizando un proxy.

curl --proxy suproxy:puerto https://yoururl.com

URL de prueba inyectando cabecera

Puede utilizar curl insertando una cabecera con sus datos para probar o solucionar un problema concreto. Veamos el siguiente ejemplo para realizar una petición con Content-Type.

curl --header 'Content-Type: application/json' http://yoururl.com

Al hacer lo anterior, está pidiendo a curl que pase Content-Type como application/json en la cabecera de la petición.

Mostrar sólo la cabecera de respuesta

Si está solucionando algún problema y desea comprobar rápidamente la cabecera de respuesta, puede utilizar la siguiente sintaxis.

curl --head http://yoururl.com

Ej:

[root@gf-lab tmp]# curl --head https://chandan.io
HTTP/1.1 200 OK
Date: Sat, 09 Nov 2019 19:51:23 GMT
Content-Type: text/html
Connection: keep-alive
Set-Cookie: __cfduid=d3cb2c7b8e566ad99c870b0af12b0f1eb1573329083; expires=Sun, 08-Nov-20 19:51:23 GMT; path=/; domain=.chandan.io; HttpOnly
X-GUploader-UploadID: AEnB2Uo96JhvJmR2zYUL-Ndh2ta3UD_ykQAB5C7O8cjZQhCf-GxHQ0MsodSzRnl3guSN3ywAYNjtWcPXfwDXjLg3bQ-P5vQMOA
Expires: Sat, 09 Nov 2019 20:51:23 GMT
Cache-Control: public, max-age=3600
Last-Modified: Mon, 06 Aug 2018 10:45:47 GMT
x-goog-generation: 1533552347482034
x-goog-metageneration: 1
x-goog-stored-content-encoding: identity
x-goog-stored-content-length: 24620
x-goog-hash: crc32c=DpDPAQ==
x-goog-hash: md5=cIP/3rusdUx12Zla1kf1yA==
x-goog-storage-class: MULTI_REGIONAL
Accept-Ranges: bytes
CF-Cache-Status: DYNAMIC
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare
CF-RAY: 53325234dc2fbb9a-LHR

[root@gf-lab tmp]#

Conectar URL HTTPS/SSL e ignorar cualquier error de certificado SSL

Cuando intente acceder a una URL protegida con un certificado SSL/TLS y tenga un certificado incorrecto o el CN no coincida, obtendrá el siguiente error.

curl: (51) Imposible comunicarse de forma segura con el par: el nombre de dominio solicitado no coincide con el certificado del servidor.

Buenas noticias, puede indicar a cURL que ignore el error de cert con la bandera --insecure.

curl --insecure https://yoururl.com

Conectarse utilizando un protocolo específico (SSL/TLS)

Muy útil para comprobar si una URL concreta puede conectarse mediante un protocolo SSL/TLS específico.

Para conectarse utilizando SSL v3

curl --sslv3 https://yoururl.com

y para diferentes versiones TLS

curl --tlsv1 https://example.com
curl --tlsv1.0 https://example.com
curl --tlsv1.1 https://example.com
curl --tlsv1.2 https://example.com
curl --tlsv1.3 https://example.com

Descarga de archivos desde un servidor FTP

También puede utilizar curl para descargar el archivo especificando su nombre de usuario y contraseña.

curl -u usuario:contraseña -O ftp://ftpurl/style.css

Siempre puede utilizar"-v" con cualquier sintaxis para imprimir en modo detallado.

Uso de la cabecera host

La cabecera host es útil para probar la URL de destino a través de IP cuando el contenido solicitado sólo está disponible cuando la cabecera host coincide. O, si desea probar la aplicación utilizando la IP/URL del equilibrador de carga.

curl --header 'Host: targetapplication.com' https://192.0.0.1:8080/

¿Y si utiliza cURL en línea?

Sí, eso es posible con las siguientes herramientas. Puede ejecutar cURL de forma remota.

Online CURL - una herramienta ligera para obtener la URL en línea y la posibilidad de añadir las siguientes opciones.

--connect-timeout
--cookie
--data
--header
--head
--location
--max-time
--proxy
--request
--user
--url
--user-agent
 

constructor de línea de comandos cURL - Este es diferente. Le ayudará a construir el comando curl donde puede introducir información en una interfaz de usuario agradable, y en la parte inferior, obtendrá el comando cURL.

curl-builder

cURL es una utilidad útil para solucionar un problema de conectividad en tiempo real, y espero que lo anterior le ayude. Si usted está buscando para aprender más, entonces yo recomendaría Conceptos básicos de la línea de comandos de Linux curso en línea.

  • Chandan Kumar
    Autor
    Chandan Kumar es el fundador de Geekflare. Ha ayudado a millones de personas a destacar en el ámbito digital. Apasionado de la tecnología, su misión es explorar el mundo y ampliar el crecimiento de profesionales y empresas.
Gracias a nuestros patrocinadores
Más lecturas sobre Linux
Potencia tu negocio
Algunas de las herramientas y servicios que le ayudarán a hacer crecer su negocio.
  • Invicti utiliza el Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en tan solo unas horas.
    Pruebe Invicti
  • Web scraping, proxy residencial, gestor de proxy, desbloqueador web, rastreador de motores de búsqueda, y todo lo que necesita para recopilar datos web.
    Pruebe Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno que te ayuda a gestionar proyectos, tareas, trabajo, ventas, CRM, operaciones, flujos de trabajo y mucho más.
    Prueba Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra puntos débiles de ciberseguridad en su infraestructura, para evitar costosas violaciones de datos.
    Prueba Intruder