If you want to download files directly from the Linux command line, then there are two applications that come to mind immediately: Wget and cURL. Both have many features in common but they are certainly not exactly the same.
These programs have slightly different roles and different uses, resulting in each being better in specific situations. But let's look at their similarities, differences and what you should use each time.
cURL vs Wget: Similarities
Both programs, that is, Wget and the cURL help you to download files. Basically they do. They can make an online request and download the requested item, which could be a file, an image, or even the first page of a HTML web page.
Both programs are also able to make HTTP POST requests. This means they can send data to a website, such as completing a form.
Since both are command line tools, they are designed to accept parameters and enter scripts. You can include both programs as commands within a script file, which will run automatically and download you that you need.
Wget is simple and easy. It is ideal for fast downloads, and does a great job. Also, wget is a single stand-alone program and does not require any additional library. Because wget is customized for direct downloads, it lets you download everything from one page or all files from one FTP directory to one.
The wget defaults are also smart. They define how to handle the program a lot of things, as would a regular browser with cookies and redirects without having to add any configuration.
CURL on the other hand is a multi-tool. Surely, it can download content from the internet. But it can do much more than that.
CURL is powered by the libcurl library. This means that you can write an entire program based on cURL, on which you will rely on libcurl and access all its functions.
The wide range of protocols available to Curl may be his greatest trump card. It supports FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, RTMP and RTSP. Curl can give you access to websites via HTTP, HTTPS and FTP and can handle both directions. You can download and upload one or more files. It even supports Samba. You can use cURL to send and receive emails.
CURL also has some security features. Supports SSL / TLS libraries. It also supports Internet access through proxies, including SOCKS. This means that you can use cURL in Tor.
Finally, Curl also supports gzip compression for the easiest delivery of large volumes of data.
So what should you use? CURL or wget? Depends !!!. If you want to download something quickly without having to worry about parameters, switches and flags, then it is best to go with wget. It's simple and it downloads what you want without being polite. If you want to do something more complex, then cURL should be your choice.
CURL allows you to do more. You can imagine it as a command in a web browser. It supports any protocol that you can think of and can give you access and interact with virtually all online content. The only difference is that a browser responds to the responses it receives while cURL does not.