Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
CURL
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Free URL data transfer client software}} {{Other uses|Curl (disambiguation){{!}}Curl}} {{confused|Curl (programming language)}} {{lowercase title}} {{Infobox software | name = curl | logo = Curl-logo.svg | author = [[Daniel Stenberg]]<ref name=17yearhistory /> | developer = [https://curl.se/docs/thanks.html Contributors to the curl project] | released = {{Start date and age|1996}}<ref name=history /> | latest release version = {{wikidata|property|preferred|reference|edit|Q286306|P348|P548=Q2804309}} | latest release date = {{wikidata|qualifier|preferred|single|Q286306|P348|P548=Q2804309|P577}} | latest preview version = {{wikidata|property|preferred|reference|edit|Q286306|P348|P548=Q51930650}} | latest preview date = {{wikidata|qualifier|preferred|single|Q286306|P348|P548=Q51930650|P577}} | programming language = [[C (programming language)|C]] | platform = [[Cross-platform software|Cross-platform]] | genre = [[web client]] (supports e.g. [[HTTPS]], and [[FTP client|FTP]]) | license = curl license<ref name="spdx">{{cite web|url=https://spdx.org/licenses/curl.html|title=curl License|website=spdx.org}}</ref><ref name="license">{{cite web|url=https://curl.se/docs/copyright.html|title=curl - copyright|website=curl.se|access-date=2024-01-17|url-status=live|archive-url=https://web.archive.org/web/20240115151446/https://curl.se/docs/copyright.html|archive-date=2024-01-15}}</ref> (inspired on the [[MIT License]]<ref name="license"></ref>), also [[ISC license|ISC]], [[BSD licenses|3-clause BSD]], [[BSD licenses|4-clause BSD]]<ref name="licenses">{{cite web |url=https://github.com/curl/curl/commit/ad9bc5976d6661cd5b03ebc379313bf657701c14 |title=Commit "copyright: make repository REUSE compliant" |work=GitHub.com |date=June 13, 2022 |first1=Max |last1=Mehl |first2=Daniel |last2=Stenberg}}</ref> | website = {{Official URL}} }} '''cURL''' (pronounced like "curl",<ref name = "FAQ, haxx.se" /> {{IPAc-en|k|ΙΛr|l}}) is a [[Free and open-source software|free and open source]] computer program for transferring data to and from [[Internet]] servers using various network [[Application layer|protocols]]. It can download a [[URL]] from a [[web server]] over [[HTTP]], and supports a variety of other network protocols, [[Uniform Resource Identifier|URI]] schemes, multiple versions of HTTP, and [[Proxy server|proxying]]. The project consists of both a [[library (computing)|library]] ('''libcurl''') and [[command-line tool]] ('''curl'''), which have been widely ported to different [[Computing platform|computing platforms]]. It was created by [[Daniel Stenberg]], who is still the lead developer of the project. ==History== The software was first released in 1996,<ref name="RelFirst">{{cite web |title=History of curl |url=https://curl.se/docs/history.html |url-status=live |archive-url=https://web.archive.org/web/20210917071434/https://curl.se/docs/history.html |archive-date=September 17, 2021 |access-date=May 11, 2021 |publisher=fossies.org |language=en-US}} </ref> originally named ''httpget'' and then became ''urlget'', before adopting the current name of curl.<ref name = "cURL changelog, 2020" /><ref name = "Stenberg, Haxx SE, 2020" /> The name stands for "Client for [[URL]]".<ref name="Stenberg, haxx.se, 2018" /> The original author and lead developer is the Swedish developer [[Daniel Stenberg]], who created curl to power part of an [[IRC bot]], because he wanted to automatically provide currency exchange rates, fetched from a website, to users in an [[Internet_Relay_Chat|IRC]] [[chat room]].<ref name=history/> == Components == === libcurl === libcurl is a client-side URL transfer [[Library (computing)|library]] that powers curl,<ref name="BlueOne" /> supporting [[DICT]], [[FTP]], [[FTPS]], [[Gopher (protocol)|Gopher]], [[HTTP|HTTP/1]]<ref name = "Stenberg, GitHub, 2019" /> (with [[HTTP/2]] and [[HTTP/3]] support), [[cookie (web)|HTTP cookie]]s, [[HTTP POST]], [[HTTP PUT]], [[HTTP proxy]] tunneling, [[HTTPS]], [[IMAP]], [[Kerberos (protocol)|Kerberos]], [[LDAP]], [[MQTT]], [[POP3]], [[RTSP]], [[Real-Time Messaging Protocol|RTMP]], [[Secure copy|SCP]], [[SMTP]], and [[Server Message Block|SMB]]. The library supports the [[file URI scheme]], [[SSH File Transfer Protocol|SFTP]], [[Telnet]], [[Trivial File Transfer Protocol|TFTP]], file transfer resume, FTP uploading, HTTP form-based upload, HTTPS certificates, LDAPS, proxies, and user-plus-password authentication.<ref name=curl1>{{cite web |title=curl - How To Use |url=https://curl.se/docs/manpage.html |website=curl.se}}</ref> The libcurl library is portable, as it builds and works identically on most platforms, including [[AIX]], [[AmigaOS]], [[Android (operating system)|Android]],{{Citation needed|date=April 2022}} [[BeOS]], [[BlackBerry Tablet OS]] and [[BlackBerry 10]],<ref name = "Blackberry, GitHub" /> [[OpenVMS]], [[Darwin (operating system)|Darwin]], [[DOS]], [[FreeBSD]], [[HP-UX]], [[HURD]], [[iOS]], [[IRIX]], [[Linux]], [[macOS]], [[NetBSD]], [[NetWare]], [[OpenBSD]], [[OS/2]], [[QNX Neutrino]], [[RISC OS]], [[Solaris (operating system)|Solaris]], [[Symbian]], [[Tru64]], [[Ultrix]], [[UnixWare]], [[Microsoft Windows]] and [[OpenHarmony]].<ref>{{cite web |title=Third-party open-source software Curl |url=https://gitee.com/openharmony/third_party_curl |website=Gitee |publisher=OpenAtom OpenHarmony |access-date=17 March 2024}}</ref><ref>{{cite web |title=Third-party open-source software Curl |url=https://github.com/openharmony/third_party_curl |website=GitHub |publisher=OpenAtom OpenHarmony |access-date=17 March 2024}}</ref><ref name = "Microsoft Techcommunity" /> The libcurl library is [[thread-safe]] and [[IPv6]] compatible. [[Language binding|Bindings]] are available for more than 50 [[computer languages|languages]], including [[C (programming language)|C]]/[[C++]], [[Java (programming language)|Java]], [[Julia (programming language)|Julia]] (is bundled with), [[PHP]] and [[Python (programming language)|Python]].<ref>{{cite web|url=https://curl.se/libcurl/bindings.html|title=libcurl bindings|publisher=curl.se}}</ref> The libcurl library supports [[GnuTLS]], [[mbed TLS]], [[Network Security Services|NSS]], {{proper name|[[GSKit]]}} on [[IBM i]], [[Security Support Provider Interface|SChannel]] on Windows, [[Secure Transport]] on macOS and iOS, [[Transport Layer Security|SSL/TLS]] through [[OpenSSL]], [[BoringSSL]], [[libreSSL]], [[AmiSSL]], [[wolfSSL]], [[BearSSL]] and {{proper name|[[rustls]]}}.<ref>{{Cite web|title=curl supports rustls {{!}} daniel.haxx.se|date=9 February 2021 |url=https://daniel.haxx.se/blog/2021/02/09/curl-supports-rustls/|access-date=2022-01-01|language=en-US}}</ref> === curl === curl is a command-line tool for getting or sending data including files using [[URL]] syntax. curl provides an interface to the libcurl library; it supports every protocol libcurl supports.<ref name=curl1/> 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 {{mono|--cacert}} and {{mono|--capath}}. The {{mono|--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 βcurl-ca-bundle.crtβ in the following order: # Directory where the curl program is located. # Current working directory. # Windows system directory. # Windows directory. # Directories specified in the %PATH% environment variables.<ref name = "SSL, haxx.se" /> 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. {{mono|-k}} or {{mono|--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. ==See also== {{Portal|Free and open-source software}} * [[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 similar to curl; class Web-client too.<ref name = "Ryan, Ryandel, 2018" /> * [[Web crawler]] β an internet bot that can crawl the web * [[Wget]] β similar command-line tool with no associated library but capable of recursive downloading ==References== {{Reflist|2|refs= <ref name=17yearhistory>{{cite web |url=https://daniel.haxx.se/blog/2015/03/20/curl-17-years-old-today/ |title=curl, 17 years old today |last1=Stenberg |first1=Daniel |date=20 March 2015 |website=daniel.haxx.se |access-date=20 March 2015}}</ref> <ref name=history>{{cite web |url=https://curl.se/docs/history.html |title=History of curl - How curl Became Like This |publisher=curl |access-date=November 17, 2016 |quote=Daniel simply adopted an existing command-line open-source tool, httpget, 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. |archive-url=https://web.archive.org/web/20170930163727/https://curl.se/docs/history.html |archive-date=September 30, 2017 |url-status=dead }}</ref> <ref name = "FAQ, haxx.se" >{{Cite web|url=https://curl.se/docs/faq.html|title=curl - Frequently Asked Questions|website=curl.se}}</ref> <ref name = "Stenberg, haxx.se, 2018" >{{Cite web|url=https://everything.curl.dev/project/name|title=Origin of the name|last=Stenberg|first=Daniel|website=curl.se|language=en|access-date=2021-03-27}}</ref> <ref name="BlueOne">{{cite web|title=Conversing through the Internet with cURL and libcurl - Using libcurl with C and Python|url=https://www.ibm.com/developerworks/library/os-curl/index.html|website=IBM Developerworks|access-date=12 September 2018|first=M. Tim|last=Jones|date=8 September 2009|url-status=live|archive-date=14 April 2015|archive-url=https://web.archive.org/web/20150414143804/https://www.ibm.com/developerworks/library/os-curl/index.html|df=dmy-all}}</ref> <ref name = "Stenberg, GitHub, 2019" > {{ Cite web | url = https://github.com/curl/curl/pull/4191/commits/2723285b39a19151808c92efa859d3afae46898e | title = http09: disable HTTP/0.9 by default in both tool and library | access-date = 5 August 2019 | author-link = Daniel Stenberg | date = 5 August 2019 | website = [[GitHub]] | quote = As the plan has been laid out in Deprecated. Update docs accordingly and verify in test 1174. | format = html | archive-url = https://web.archive.org/web/20190805160316/https://github.com/curl/curl/pull/4191/commits/2723285b39a19151808c92efa859d3afae46898e | archive-date = 5 August 2019 | df = dmy-all | first = Daniel | last = Stenberg }} </ref> <ref name = "Blackberry, GitHub" >{{Cite web |url=https://blackberry.github.com/ndk/components.html |title=Open Source Components for the Native SDK for BlackBerry Tablet OS |access-date=2017-09-19 |archive-url=https://web.archive.org/web/20130127102233/http://blackberry.github.com/ndk/components.html |archive-date=2013-01-27 |url-status=dead }}</ref> <ref name = "Microsoft Techcommunity" >{{Cite web|url=https://techcommunity.microsoft.com/t5/containers/tar-and-curl-come-to-windows/ba-p/382409|title=Tar and Curl Come to Windows!|date=March 22, 2019|website=techcommunity.microsoft.com}}</ref> <ref name = "SSL, haxx.se" >{{Cite web|url=https://curl.se/docs/sslcerts.html|title=curl - SSL CA Certificates|website=curl.se}}</ref> <ref name = "cURL changelog, 2020" > {{ Cite web | url = https://curl.se/changes.html#4_0 | title = Changelog | access-date = 2020-01-04 | date = 2020-01-04 | quote = The first curl release. The tool was named urlget before this. And httpget before that. | language = en | df = dmy-all }} </ref> <ref name = "Stenberg, Haxx SE, 2020" > {{ Cite web | url = https://daniel.haxx.se/blog/2020/01/04/restored-complete-curl-changelog/ | title = Restored complete curl changelog | access-date = 2020-01-02 | first = Daniel | last = Stenberg | author-link = Daniel Stenberg | date = 2020-01-04 | website = Haxx Se | format = html | df = dmy-all }} </ref> <ref name = "Ryan, Ryandel, 2018" > {{ Cite web | url = https://www.ryadel.com/curl-wget-comandi-equivalenti-alternative-windows-command-line-prompt-powershell/ | title = Comandi equivalenti a cURL e Wget per Windows command-line con Powershell | access-date = 2020-01-04 | first = Ryan | date = 2018-03-02 | website = Ryadel | language = it | trans-title = cURL and Wget equivalent commands for Windows command-line with Powershell | quote = Per emulare il comportamento del comando Linux cURL, Γ¨ sufficiente creare un file cURL.ps1 contenente la seguente riga di codice | format = html | df = dmy-all | last = Del }} </ref> }} ==External links== {{Wikibooks|Guide to Windows Commands}} * {{official website}} {{Download managers}} {{Windows commands}} {{DEFAULTSORT:Curl}} [[Category:1997 software]] [[Category:C (programming language) libraries]] [[Category:Command-line software]] [[Category:Cross-platform free software]] [[Category:Download managers]] [[Category:Free FTP clients]] [[Category:Free software programmed in C]] [[Category:Free web crawlers]] [[Category:Hypertext Transfer Protocol clients]] [[Category:Software using the MIT license]] [[Category:Telnet]] [[Category:Web scraping]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Citation needed
(
edit
)
Template:Cite web
(
edit
)
Template:Confused
(
edit
)
Template:Download managers
(
edit
)
Template:IPAc-en
(
edit
)
Template:Infobox software
(
edit
)
Template:Lowercase title
(
edit
)
Template:Mono
(
edit
)
Template:Official website
(
edit
)
Template:Other uses
(
edit
)
Template:Portal
(
edit
)
Template:Proper name
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Wikibooks
(
edit
)
Template:Windows commands
(
edit
)