Conceptos básicos de la línea de comandos: solicitudes de red

Índice
  1. Empezando
  2. GET
  3. POST
  4. HEAD
  5. Prima
  6. Conclusión

La realización de solicitudes de red desde la línea de comandos se presenta en una variedad de formas y tamaños. Algunas personas confían plenamente en , y a curlotras les encanta wget. En mi caso, me encanta el paquete que proporciona comandos , y lwp-requestcon nombres familiares . El tercero de la lista, , es algo que utilizo con bastante regularidad para solucionar problemas con los encabezados devueltos por los servidores.GETPOSTHEADHEAD

Empezando

Los comandos que vamos a utilizar los proporciona un paquete llamado lwp-request.

El paquete en cuestión está escrito en Perl y tiende a venir de serie con bastantes distribuciones de Linux, así como con otros sistemas operativos tipo Unix como macOS.

El lwp-requestcomando se puede invocar directamente con una serie de argumentos, pero repasaremos los scripts auxiliares que lo acompañan para simplificar.

GETSi no lo tiene POSTy HEADestá en su sistema, lo más probable es que pueda instalar el lwp-requestpaquete desde su administrador de paquetes favorito.

En sistemas derivados de Ubuntu y Debian, puedes instalarlo usando los siguientes comandos:

  1. sudo apt update
  2. sudo apt install libwww-perl

En CentOS, Rocky Linux, Fedora y otros sistemas derivados de RedHat, puede instalarlo con soporte para URL HTTPS usando el siguiente comando:

  1. sudo dnf install perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch

GET

Digamos que te gustó tanto el logotipo de Alligator.io que quisiste descargarlo localmente. Es un logotipo increíble, ¿quién no querría tener su propia copia?

Para acceder GETal archivo, simplemente puedes ejecutar:

  1. GET https://alligator.io/images/logo-fancy.svg

¡No tan rápido! Lo único que hace es mostrar un montón de marcado SVG.

Siguiendo el verdadero estilo de la filosofía Unix, el GETcomando hace una cosa realmente bien y es GETcopiar un archivo.

Esto es genial cuando quieres verificar una URL para ver qué está devolviendo el servidor web, pero si realmente quieres descargar ese hermoso logotipo, querrás enviar la salida a un archivo:

  1. GET https://alligator.io/images/logo-fancy.svg logo-fancy.svg

¡Ahora tenemos ese fantástico logo de Alligator.io descargado en un archivo local!

POST

El GETcomando nos permite consumir archivos de servidores remotos mientras POSTnos permite enviar datos a un servidor para su procesamiento y devolver su salida.

Como mínimo, la sintaxis POSTes la misma que GET:

  1. POST https://httpbin.org/post

A continuación, se le solicitará el contenido que desea POST. La cadena esperada debe tener un formato de cadena de consulta similar a este:

reptile=alligatorcolor=#008f68

Cuando hayas terminado de ingresar tu contenido, simplemente haz clic en CTRL-Dy el contenido se editará POST. El servicio en el que estamos publicando reflejará la solicitud:

{  "args": {},  "data": "",  "files": {},  "form": {    "color": "#008f68n",    "reptile": "alligator"  },  "headers": {    "Content-Length": "32",    "Content-Type": "application/x-www-form-urlencoded",    "Host": "httpbin.org",    "User-Agent": "lwp-request/6.39 libwww-perl/6.39"  },  "json": null,  "origin": "203.0.113.5",  "url": "https://httpbin.org/post"}

HEAD

Como se mencionó, HEADno solo es extremadamente útil para depurar y solucionar problemas, sino que estoy bastante seguro de que está entre mis 5 utilidades de línea de comandos favoritas de todos los tiempos.

Similar a GETy POST, la sintaxis para HEADes bastante mínima:

  1. HEAD http://alligator.io/

Esto devolverá un 200 OKy la información sobre los encabezados devueltos por el servicio web.

Lamentablemente, esto no es del todo correcto, porque ofrecemos Alligator.io a través de HTTPS como los buenos internautas reptiles preocupados por la seguridad que somos.

El HEADcomando por defecto solo te da información sobre la última parada en la cadena de solicitudes. Para ver todas las solicitudes, incluida la automática 301 Moved Permanently, pasa el -Sargumento:

  1. HEAD -S http://alligator.io/

Lo que nos da un poco más de información:

OutputHEAD http://alligator.io/301 Moved PermanentlyHEAD https://alligator.io/200 OKCache-Control: public, max-age=0, must-revalidateConnection: closeDate: Sat, 29 Jun 2019 00:49:18 GMTAge: 1ETag: "8b85849c835909679fc1ba80b307d144-ssl"Server: NetlifyContent-Length: 0Content-Type: text/html; charset=UTF-8Client-Date: Sat, 29 Jun 2019 00:49:18 GMTClient-Peer: 203.0.113.1:443Client-Response-Num: 1Client-SSL-Cert-Issuer: /C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3Client-SSL-Cert-Subject: /CN=alligator.ioClient-SSL-Cipher: TLS_AES_256_GCM_SHA384Client-SSL-Socket-Class: IO::Socket::SSLStrict-Transport-Security: max-age=31536000X-NF-Request-ID: 60babe56-c0ea-4658-aa5a-3e185f1e851f-10342

Prima

¿La salida monocromática te molesta? Si es así, puedes usar el comando HTTPie como alias , y .httpGETPOSTHEAD

HTTPie puede hacer todo lo lwp-requestque hace la biblioteca, con una sintaxis similar y con la ventaja adicional de una salida colorida.

En sistemas derivados de Ubuntu y Debian puedes instalar HTTPie con los siguientes comandos:

  1. sudo apt update
  2. sudo apt install httpie

En distribuciones derivadas de Centos, Rocky Linux, Fedora y RedHat, puede instalar HTTPie utilizando los siguientes comandos, siempre que tenga EPEL:

  1. sudo dnf install epel-release
  2. sudo dnf install httpie

Mis alias locales se ven así:

  1. # HTTPie aliases
  2. alias GET='http'
  3. alias POST='http POST'
  4. alias HEAD='http HEAD'

Conclusión

La próxima vez que necesite realizar una solicitud de red a una API o esté solucionando problemas con los encabezados devueltos por un servidor, puede dejar Postman y herramientas similares en la puerta.

¡También puedes omitir tu navegador por completo!

SUSCRÍBETE A NUESTRO BOLETÍN 
No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion