curl: la navaja suiza de los protocolos de Internet
Una de las herramientas que más uso en el día a día es curl, es muy versátil y soporta una gran cantidad de protocolos, los que más uso son solo http y https, pero tiene soporte para los siguientes protocolos de acuerdo a su página web DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP.
Básicamente con esta herramienta puedes ejecutar peticiones HTTP/s, subir o bajar archivos vía ftp, scp, sftp, enviar emails vía smtp, leer bandejas de correo vía pop3 o imap, administrar directorios LDAP entre otros.
Pero la acción que uso con mayor frecuencia es mientras creo alguna app en el browser, es abrir las herramientas de desarrollador, pestaña de Red, seleccionar un request y click derecha copiar como cURL esto ayuda bastante si estás depurando una petición web específica o una petición ajax. Esto me permite aislar esa petición llamándola desde la línea de comandos, es decir pegando el comando copiado desde el browser en un terminal.
Si la petición es json se puede usar en conjunto con jq o si es xml con xq o hq si es html.
Para obtener más información, se puede encontrar los parámetros de cada protocolo digitando
curl --help http
curl --help smtp
curl --help sftp
curl --help imap