Generalidades acerca de cURL

Generalidades

cURL es un software gratuito que te permite transferir entre servidores. El proyecto cURL ofrece dos subproyectos:

  • curl — Esta es la herramienta de línea de comandos que puedes ejecutar en tu computadora local o en tu servidor de DreamHost. Ofrece varias opciones de comando para que envíes y recibas datos. 'curl' usa 'libcurl'.
  • libcurl — Esta es una biblioteca que admite muchos protocolos diferentes. Es muy común que el lenguaje de programación PHP use esta biblioteca. Mira el siguiente artículo para más detalles:

Este artículo solo muestra cómo usar la herramienta de línea de comandos.

Ejemplos de cURL

Los siguientes ejemplos deben ejecutarse en una aplicación de terminal SSH. Consulta el siguiente artículo para obtener más información sobre cómo iniciar sesión en una terminal.

Ver la versión de curl instalada

A continuación se muestra cómo ver la versión de curl que estás utilizando. Esto puede cambiar dependiendo de si estás ejecutando comandos en tu servidor de DreamHost o en tu computadora local.

[server]$ curl --version
curl 7.35.0 (x86_64-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

DreamHost utiliza la versión 7.35.0 en servidores que ejecutan Ubuntu 14 (Trusty) y la versión 7.58.0 en servidores que ejecutan Ubuntu 18 (Bionic). Los servidores que utilizan Debian Stretch ejecutan 7.5.2.1.

Devuelve el código de una página web específica

Esto devolverá la codificación de origen de una página específica.

[server]$ curl http://example.com

Guarda el código de una página web específica en un archivo nuevo

Si solo ejecutas curl example.com, el código se muestra en tu terminal. Para guardarlo en un nuevo nombre de archivo, usa el indicador -o. Esto usa el caracter en minúscula 'o'.

La sintaxis sería curl -o <nuevo-archivo-con código guardado> <url-del-sitio-web>

[server]$ curl -o example.com-CODE http://example.com 

Guarda el código de una página web específica en un archivo con el mismo nombre

Si no deseas guardar en un nuevo nombre de archivo, puedes guardarlo en un archivo que sea igual a la página a la que estás accediendo. Por ejemplo, si estás accediendo a 'example.com/index.html', esto creará un nuevo archivo titulado 'index.html' con el código guardado. Usa el indicador -O con el caracter 'O' en mayúscula.

La sintaxis sería curl -O <website-url>

[server]$ curl -O https://example.com/index.html 

Probar una conexión a un sitio remoto

En algún momento, puedes notar que tu sitio no se está comunicando con otro sitio web. Un ejemplo puede ser cuando intentas descargar un plugin (complemento) de WordPress y ves que falla.

Los siguientes pasos te ayudan a probar tu conexión a WordPress:

  1. Inicia sesión en tu servidor a través de SSH.
  2. Ejecuta el siguiente comando dentro del directorio de tu dominio:
    [server]$ curl -v https://wordpress.org/
    * About to connect() to wordpress.org port 443 (#0)
    *   Trying 66.155.40.250... connected
    * Connected to wordpress.org (66.155.40.250) port 443 (#0)
    * successfully set certificate verify locations:

Este primero responde con los datos de conexión, luego el código completo de la página que ingresaste.

Lo anterior muestra una conexión exitosa. Si falla, verás la falla en la respuesta.

Comprobación de encabezados

También puedes usar cURL para verificar los encabezados de un sitio web usando el indicador '-I':

[server]$ curl -I http://example.com/index.php
  HTTP/1.1 200 OK
Date: Tue, 29 May 2018 20:55:09 GMT
Server: Apache
Last-Modified: Mon, 25 Jul 2016 22:45:30 GMT
ETag: "2f3-5387d8a979b59"
Accept-Ranges: bytes
Content-Length: 755
Vary: Accept-Encoding
Content-Type: text/html

Esto devuelve una lista predeterminada de encabezados. Si deseas que no se muestre un encabezado específico, debes especificarlo manualmente utilizando el indicador '-H'. Por ejemplo, ejecuta lo siguiente para verificar si gzip está habilitado:

[server]$ curl -I -H 'Accept-Encoding: gzip,deflate' http://example.com/index.php
  HTTP/1.1 200 OK
Date: Tue, 29 May 2018 20:57:31 GMT
Server: Apache
Last-Modified: Mon, 25 Jul 2016 22:45:30 GMT
ETag: "2f3-5387d8a979b59"
Accept-Ranges: bytes
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 428
Content-Type: text/html

Si gzip está habilitado, verás esta línea en el resultado:

Content-Encoding: gzip

Solución de problemas

Movido permanentemente

Es posible que cuando ejecutes 'curl' en la URL de un sitio web, veas una respuesta 'Moved permanently'. Por ejemplo:

[server]$ curl http://www.example.com

<html>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://example.com">here</a>.</p>
</body></html>

Esto generalmente significa que la URL usa (o no) el subdominio 'www' antes. Intenta nuevamente con (o sin) www.

De lo contrario, puedes usar el indicador '-L' para redirigirte de todos modos.

[server]$ curl -L http://www.example.com

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?