--- layout: page category-page: intermediate category-title: Intermediate commands tags: curl download http client crawler request online author: Claudio Maggioni title: curl ---

The curl command is a fast and versatile shell program that can request online content using various protocols, including HTTP, FTP and POP3. Some example use cases for this utility are the need to automate some remote call to a server, testing REST or SOAP apis or simply download or display the HTML code of a website.

The name, as mentioned in the Evertything curl online book, stands for "client URL" and the right pronunciation rhymes with "earl" or "girl". By this fact, the reader is able to tell the author of this page to stop pronuncing it as "cooorl", like if the name is some sort of word in the Bergamasque dialect.

Usage

curl is a very complex command: if you want to learn it deeply, please refer to the previously mentioned guide called Evertything curl. Some basic ways to use this command are shown below:

Download the contents of the page "example.com" to "file.html"

curl example.com -o file.html

Download the contents of the page "en.wikipedia.org/wiki/Curl" to a file with the same name as the last element in the path (here "Curl")

curl -O en.wikipedia.org/wiki/Curl

Download the contents of the page "example.com" to "file.html"

curl example.com -o file.html

Download the contents of the page "example.com" following location redirects (-L flag)

curl -O -L example.com 

Download the contents of the page "example.com" resuming a previous attempt (-C flag)

curl -O -C example.com 

Do an HTTP DELETE request to "example.com" with a custom header (-H and -X flags)

curl -H 'User-Agent: Tamagotchi' -X DELETE example.com

Print to stdout "example.com" making a request with HTTP basic authentication (-u flag)

curl -u bob:P@ssw0rd example.com