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, usted debe ser consciente de cURL uso de comandos para solucionar problemas de aplicaciones web. cURL es una utilidad multiplataforma significa que usted puede utilizar 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 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 % Recibido % Xferd Velocidad Media Tiempo Tiempo Actual
                                 Dload Upload Total Gastado Velocidad Izquierda
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 respuesta esperada.

curl -v tuurl.com

Ej:

[root@gf-lab tmp]# curl -v https://geekflare.com/es
* A punto de connect() a geekflare.com/es puerto 443 (#0)
*   Intentando 104.25.134.107...
* Conectado a geekflare.com/es (104.25.134.107) puerto 443 (#0)
* Inicializando NSS con certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: ninguno
* Conexión SSL utilizando TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
* Certificado del servidor:
* 	subject: CN=ssl371609.cloudflaressl.com,OU=PositiveSSL Multi-Domain,OU=Control de Dominio Validado
* 	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/es
> Aceptar: */*
> 
< HTTP/1.1 200 OK
< Fecha 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/es; HttpOnly; Secure
< Vary Accept-Encoding
< Enlace: <https://geekflare.com/es/wp-json/>; rel="https://api.w.org/"
< Enlace: <https://geekflare.com/es/>; 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
Tipo de contenido: text/html
Conexión: 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
Caduca: Sat, 09 Nov 2019 20:51:23 GMT
Cache-Control: public, max-age=3600
Última modificación: Mon, 06 Aug 2018 10:45:47 GMT
generación x-goog: 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"
Servidor: 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 asegurada con un certificado SSL/TLS y si este tiene un cert incorrecto o el CN no coincide, entonces 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 de 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í, 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
--datos
--cabecera
--cabecera
--ubicación
--tiempo-máx
--proxy
--petición
--usuario
--url
--usuario-agente
 

constructor de línea de comandos cURL – este es diferente. Le ayuda 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 Linux Command Line Basics curso en línea.