Curl is used in command lines or scripts to transfer data. It is also used in cars, television sets, routers, printers, audio equipment, mobile phones, tablets, settop boxes, media players and is the internet transfer backbone for thousands of software applications affecting billions of humans daily. The application supports a wide range of protocols such as POP3, POP3S, DICT, FILE, FTP, HTTP, HTTPS, IMAP, FTPS, LDAPS, Gopher, Telnet, TFTP and SCP. As far as certificates go, it supports HTTP POST, HTTP PUT, SSL, HTTP form based upload, user+password authentication, cookies, proxies, proxy tunneling and file transfer resume. There are many other options. Curl can upload files, post forms, resume file transfers, set upper or lower transfer speed limits, set a custom referrer or user agent, use cookie authentication and more. And although it is a command line tool, Curl does a good job of keeping you in touch with whatever it’s downloading. A progress bar displays the total download size, the bytes downloaded so far, the average transfer speed, time elapsed, expected completion time and more.