Run Curl Commands Online – ReqBin
cURL – Wikipedia
cURLExample output from curl -OOriginal author(s)Daniel StenbergDeveloper(s)Contributors to the cURL projectInitial release1996; 25 years agoStable release7. 79. 1
/ 22 September 2021; 15 days
Written inCOperating system
PlatformCross-platformTypeFTP client / HTTP clientLicensecurl
cURL (pronounced like “curl”, /kɜːl/) is a computer software project providing a library (libcurl) and command-line tool (curl) for transferring data using various network protocols. The name stands for “Client URL”,  which was first released in 1996. 
cURL was first released in 1996.  It was originally named get and then became urlget before adopting the current name of cURL.  The original author and lead developer is the Swedish developer Daniel Stenberg, who created cURL because he wanted to automate the fetching of currency exchange rates for IRC users. 
libcurl is a free client-side URL transfer library,  supporting cookies, DICT, FTP, FTPS, Gopher, HTTP/1 (with HTTP/2 and HTTP/3 support), HTTP POST, HTTP PUT, HTTP proxy tunneling, HTTPS, IMAP, Kerberos, LDAP, MQTT, POP3, RTSP, RTMP, SCP, SMTP, and SMB. The library supports the file URI scheme, SFTP, Telnet, TFTP, file transfer resume, FTP uploading, HTTP form-based upload, HTTPS certificates, LDAPS, proxies, and user-plus-password authentication. 
The libcurl library is portable. It builds and works identically on many platforms, including AIX, AmigaOS, Android, BeOS, BlackBerry Tablet OS and BlackBerry 10,  OpenVMS, Darwin, DOS, FreeBSD, HP-UX, HURD, iOS, IRIX, Linux, macOS, NetBSD, NetWare, OpenBSD, OS/2, QNX Neutrino, RISC OS, Solaris, Symbian, Tru64, Ultrix, UnixWare, and Microsoft Windows.
The libcurl library is free, thread-safe and IPv6 compatible. Bindings are available for more than 50 languages, including C/C++, Java, PHP and Python. 
The libcurl library supports GnuTLS, mbed TLS, NSS, gskit on IBM i, SChannel on Windows, Secure Transport on macOS and iOS, SSL/TLS through OpenSSL, Boringssl, libressl, AmiSSL, wolfSSL, BearSSL, Mesalink and rustls. 
cURL is a command-line tool for getting or sending data including files using URL syntax. Since cURL uses libcurl, it supports every protocol libcurl supports. 
cURL supports HTTPS and performs SSL certificate verification by default when a secure protocol is specified such as HTTPS. When cURL connects to a remote server via HTTPS, it will obtain the remote server certificate, then check against its CA certificate store the validity of the remote server to ensure the remote server is the one it claims to be. Some cURL packages are bundled with CA certificate store file. There are several options to specify a CA certificate such as –cacert and –capath. The –cacert option can be used to specify the location of the CA certificate store file. In the Windows platform, if a CA certificate file is not specified, cURL will look for a CA certificate file name “” in the following order:
Directory where the cURL program is located.
Current working directory.
Windows system directory.
Directories specified in the%PATH% environment variables. 
cURL will return an error message if the remote server is using a self-signed certificate, or if the remote server certificate is not signed by a CA listed in the CA cert file. -k or –insecure option can be used to skip certificate verification. Alternatively, if the remote server is trusted, the remote server CA certificate can be added to the CA certificate store file.
Basic use of cURL involves simply typing curl at the command line, followed by the URL of the output to retrieve:
cURL defaults to displaying the output it retrieves to the standard output specified on the system (usually the terminal window). So running the command above would, on most systems, display the source-code in the terminal window. The -o flag can be used to store the output in a file instead:
$ curl -o
More options that change the tool’s behavior are available.
curl-loader – an open-source testing tool based on cURL
libwww – an early library that comes with a command line interface
PowerShell – the iwr (Invoke-WebRequest) Windows PowerShell had functionality akin to curl; class Web-client too. 
Web crawler – an internet bot that can crawl the web
Wget – similar command-line tool with no associated library but capable of recursive downloading.
^ Stenberg, Daniel (20 March 2015). “curl, 17 years old today”. Retrieved 20 March 2015.
^ a b “History of curl – How curl Became Like This”. curl. Archived from the original on September 30, 2017. Retrieved November 17, 2016. Daniel simply adopted an existing command-line open-source tool, get, that Brazilian Rafael Sagula had written and recently release version 0. 1 of. After a few minor adjustments, it did just what he needed. […] HttpGet 1. 0 was released on April 8th 1997 with brand new HTTP proxy support. […] Stenberg was spending time writing an IRC bot for an Amiga related channel on EFnet. He then came up with the idea to make currency-exchange calculations available to Internet Relay Chat (IRC) users.
^ “Release 7. 1”. 22 September 2021. Retrieved 23 September 2021.
^ “curl License”.
^ “curl – copyright”.
^ “curl – Frequently Asked Questions”.
^ Stenberg, Daniel. “Origin of the name”. Retrieved 2018-04-25.
^ a b “History of curl”. Archived from the original on September 29, 2021.
^ “Changelog”. 4 January 2020. Retrieved 4 January 2020. The first curl release. The tool was named urlget before this. And get before that.
^ Stenberg, Daniel (4 January 2020). “Restored complete curl changelog” (html). Haxx Se. Retrieved 2 January 2020.
^ Jones, M. Tim (8 September 2009). “Conversing through the Internet with cURL and libcurl – Using libcurl with C and Python”. IBM Developerworks. Archived from the original on 14 April 2015. Retrieved 12 September 2018.
^ Stenberg, Daniel (5 August 2019). “09: disable HTTP/0. 9 by default in both tool and library”. GitHub. Archived from the original (html) on 5 August 2019. Retrieved 5 August 2019. As the plan has been laid out in Deprecated. Update docs accordingly and verify in test 1174.
^ a b “curl – How To Use”.
^ “Open Source Components for the Native SDK for BlackBerry Tablet OS”. Archived from the original on 2013-01-27. Retrieved 2017-09-19.
^ “libcurl bindings”.
^ “curl – SSL CA Certificates”.
^ Del, Ryan (2 March 2018). “Comandi equivalenti a cURL e Wget per Windows command-line con Powershell” [cURL and Wget equivalent commands for Windows command-line with Powershell] (html). Ryadel (in Italian). Per emulare il comportamento del comando Linux cURL, è sufficiente creare un file 1 contenente la seguente riga di codice
Comparison of cURL vs other open source download tools
Comparison of cURL vs wget
Curl Command in Linux with Examples
curl is a command-line utility for transferring data from or to a server designed to work without user interaction. With curl, you can download or upload data using one of the supported protocols including HTTP, HTTPS, SCP, SFTP, and FTP. curl provides a number of options allowing you to resume transfers, limit the bandwidth, proxy support, user authentication, and much this tutorial, we will show you how to use the curl tool through practical examples and detailed explanations of the most common curl stalling Curl The curl package is pre-installed on most Linux distributions check whether the Curl package is installed on your system, open up your console, type curl, and press enter. If you have curl installed, the system will print curl: try ‘curl –help’ or ‘curl –manual’ for more information. Otherwise, you will see something like curl command not curl is not installed you can easily install it using the package manager of your stall Curl on Ubuntu and Debian sudo apt updatesudo apt install curlInstall Curl on CentOS and Fedora sudo yum install curlHow to Use Curl The syntax for the curl command is as follows:In its simplest form, when invoked without any option, curl displays the specified resource to the standard example, to retrieve the homepage you would run:curl command will print the source code of the homepage in your terminal no protocol is specified, curl tries to guess the protocol you want to use, and it will default to the Output to a File To save the result of the curl command, use either the -o or -O option. Lowercase -o saves the file with a predefined filename, which in the example below is -o -O saves the file with its original filename:curl -O Multiple files To download multiple files at once, use multiple -O options, followed by the URL to the file you want to the following example we are downloading the Arch Linux and Debian iso files:curl -O \ -O a Download You can resume a download by using the -C – option. This is useful if your connection drops during the download of a large file, and instead of starting the download from scratch, you can continue the previous example, if you are downloading the Ubuntu 18. 04 iso file using the following command:curl -O suddenly your connection drops you can resume the download with:curl -C – -O headers are colon-separated key-value pairs containing information such as user agent, content type, and encoding. Headers are passed between the client and the server with the request or the the -I option to fetch only the HTTP headers of the specified resource:curl -I –2 if a Website Supports HTTP/2 To check whether a particular URL supports the new HTTP/2 protocol, fetch the HTTP Headers with -I along with the –2 option:curl -I –2 -s | grep HTTPThe -s option tells curl to run in a silent (quiet) and hide the progress meter and error the remote server supports HTTP/2, curl prints HTTP/2. 0 200:HTTP/2 200
Otherwise, the response is HTTP/1. 1 200:HTTP/1. 1 200 OK
If you have curl version 7. 47. 0 or newer, you do not need to use the –2 option because HTTP/2 is enabled by default for all HTTPS Redirects By default, curl doesn’t follow the HTTP Location you try to retrieve the non-www version of, you will notice that instead of getting the source of the page you’ll be redirected to the www version:curl -L option instructs curl to follow any redirect until it reaches the final destination:curl -L mChange the User-Agent Sometimes when downloading a file, the remote server may be set to block the Curl User-Agent or to return different contents depending on the visitor device and situations like this to emulate a different browser, use the -A example to emulates Firefox 60 you would use:curl -A “Mozilla/5. 0 (X11; Linux x86_64; rv:60. 0) Gecko/20100101 Firefox/60. 0” a Maximum Transfer Rate The –limit-rate option allows you to limit the data transfer rate. The value can be expressed in bytes, kilobytes with the k suffix, megabytes with the m suffix, and gigabytes with the g the following example curl will download the Go binary and limit the download speed to 1 mb:curl –limit-rate 1m -O option is useful to prevent curl consuming all the available ansfer Files via FTP To access a protected FTP server with curl, use the -u option and specify the username and password as shown below:curl -u FTP_USERNAME:FTP_PASSWORD logged in, the command lists all files and directories in the user’s home can download a single file from the FTP server using the following syntax:curl -u FTP_USERNAME:FTP_PASSWORD upload a file to the FTP server, use the -T followed by the name of the file you want to upload:curl -T -u FTP_USERNAME:FTP_PASSWORD Cookies Sometimes you may need to make an HTTP request with specific cookies to access a remote resource or to debug an default, when requesting a resource with curl, no cookies are sent or send cookies to the server, use the -b switch followed by a filename containing the cookies or a example, to download the Oracle Java JDK rpm file
you’ll need to pass a cookie named oraclelicense with value a:curl -L -b “oraclelicense=a” -O Proxies curl supports different types of proxies, including HTTP, HTTPS and SOCKS. To transfer data through a proxy server, use the -x (–proxy) option, followed by the proxy following command downloads the specified resource using a proxy on 192. 168. 44. 1 port 8888:curl -x 192. 1:8888 the proxy server requires authentication, use the -U (–proxy-user) option followed by the user name and password separated by a colon (user:password):curl -U username:password -x 192. 1:8888 curl is a command-line tool that allows you to transfer data from or to a remote host. It is useful for troubleshooting issues, downloading files, and examples shown in this tutorial are simple, but demonstrate the most used curl options and are meant to help you understand how the curl command more information about curl visit the Curl Documentation
you have any questions or feedback, feel free to leave a comment.
Frequently Asked Questions about web curl
What is a Web curl?
Website. curl.se. cURL (pronounced like “curl”, /kɜːl/) is a computer software project providing a library (libcurl) and command-line tool (curl) for transferring data using various network protocols. The name stands for “Client URL”, which was first released in 1997.
How do you curl a website?
The syntax for the curl command is as follows: curl [options] [URL…] In its simplest form, when invoked without any option, curl displays the specified resource to the standard output. The command will print the source code of the example.com homepage in your terminal window.Nov 27, 2019
What is the use of curl command?
curl is a command line tool to transfer data to or from a server, using any of the supported protocols (HTTP, FTP, IMAP, POP3, SCP, SFTP, SMTP, TFTP, TELNET, LDAP or FILE).May 15, 2019