{{위키데이터 속성 추적}}
{{소문자}}
{{소프트웨어 정보
| name                 = cURL
| logo                 = Curl-logo.svg
| screenshot           = Screenshot of cURL command line interface.png
| caption              = <code>curl -O</code>의 출력 예
| author               = [[다니엘 스텐베리]]<ref name=17yearhistory>{{웹 인용 |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 |publisher= |access-date=20 March 2015}}</ref>
| developer            = [https://curl.haxx.se/docs/thanks.html Contributors to the cURL project]
| released             = 1997년<ref name=history>{{웹 인용 |url=https://curl.haxx.se/docs/history.html |title=History of curl - How curl Became Like This |publisher=curl |accessdate=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. |보존url=https://web.archive.org/web/20170930163727/https://curl.haxx.se/docs/history.html |보존날짜=2017-09-30 |url-status=dead }}</ref>
| 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}}
| status               = 개발 중
| programming language = [[C (프로그래밍 언어)|C]]
| operating system     = [[크로스 플랫폼]]
| genre                = [[FTP 클라이언트]] / [[HTTP 클라이언트]]
| license              = 자유 소프트웨어: [https://curl.haxx.se/docs/copyright.html MIT/X 파생 라이선스]
| website              = {{url|https://curl.haxx.se/}}
| frequently updated   = yes
| repo = {{URL|https://github.com/curl/curl/}}
}}
'''cURL'''(/kɝl/ 또는 /kə:l/)<ref name = "FAQ, haxx.se" />은 다양한 [[통신 프로토콜]]을 이용하여 데이터를 전송하기 위한 [[라이브러리 (컴퓨팅)|라이브러리]]와 [[명령 줄]] 도구를 제공하는 컴퓨터 소프트웨어 프로젝트이다. 이 이름은 "client URL"을 줄인 것이다.<ref name = "Stenberg, haxx.se, 2018" />

== 역사 ==
curl은 1996년에 처음 출시되었으며, 스웨덴의 소프트웨어 개발자 [[다니엘 스텐베리]]가 환율 정보를 가져오는 것을 자동화하는 [[IRC 봇]]을 만들기 위해 curl을 만들었다.<ref name="RelFirst">{{웹 인용|url=https://curl.se/docs/history.html|제목=History of curl|출판사=fossies.org|언어=en-US|보존url=https://web.archive.org/web/20210917071434/https://curl.se/docs/history.html|보존날짜=September 17, 2021|url-status=live|확인날짜=May 11, 2021}}</ref> 원래 이름은 ''httpget'' 이었고 이후 ''urlget''이었다가  최종적인 이름으로 curl이 되었다.<ref name = "cURL changelog, 2020" /><ref name = "Stenberg, Haxx SE, 2020" />

== libcurl ==
libcurl은 자유 소프트웨어인 클라이언트측 URL 전송 [[라이브러리 (컴퓨팅)|라이브러리]]로,<ref name="BlueOne" />  [[HTTP 쿠키|쿠키]], DICT, [[파일 전송 프로토콜|FTP]], [[FTPS]], [[고퍼 (프로토콜)|고퍼]], [[HTTP|HTTP/1]],<ref name = "Stenberg, GitHub, 2019" /> [[HTTP/2]] 및 [[HTTP/3]], [[POST (HTTP)|HTTP POST]], [[HTTP|HTTP PUT]], [[프록시 서버|HTTP 프록시]] 터널링, [[HTTPS]], [[인터넷 메시지 접속 프로토콜]], [[커버로스]], [[LDAP]], [[MQTT]], [[포스트 오피스 프로토콜|POP3]], [[실시간 스트리밍 프로토콜|RTSP]], [[리얼 타임 메시징 프로토콜|RTMP]], [[시큐어 카피|SCP]], [[간이 우편 전송 프로토콜|SMTP]] 및 [[서버 메시지 블록|SMB]]을 지원한다.  라이브러리는 파일 URI 체계, [[SSH 파일 전송 프로토콜|SFTP]], [[텔넷]], [[TFTP]], 파일 전송 재개, FTP 업로드, HTTP 양식 기반 업로드, HTTPS 인증서, LDAPS, 프록시 및 사용자 + 비밀번호 인증을 지원한다.<ref name="curl1></ref>

libcurl 라이브러리는 이식성이 높다. [[IBM AIX]], [[아미가OS]], [[안드로이드 (운영체제)|안드로이드]], [[BeOS]], [[블랙베리 태블릿 OS]] 및 [[블랙베리 10]],<ref name = "Blackberry, GitHub" />  [[OpenVMS]], [[다윈 (운영 체제)|다윈]], [[도스]], [[FreeBSD]], [[HP-UX]], [[GNU 허드]], [[iOS]], [[IRIX]], [[리눅스]], [[macOS]], [[NetBSD]], [[넷웨어]], [[OpenBSD]], [[OS/2]], [[QNX|QNX Neutrino]], [[RISC OS]], [[솔라리스 (운영체제)|솔라리스]], [[심비안 OS]], [[Tru64 UNIX|Tru64]], Ultrix, [[유닉스웨어|UnixWare]], [[마이크로소프트 윈도우|마이크로소프트]] 및 [[오픈하모니]]를 포함한 많은 플랫폼에서 동일하게 빌드되고 작동한다.<ref>{{웹 인용|url=https://gitee.com/openharmony/third_party_curl|제목=Third-party open-source software Curl|웹사이트=Gitee|출판사=OpenAtom OpenHarmony|확인날짜=17 March 2024}}</ref><ref>{{웹 인용|url=https://github.com/openharmony/third_party_curl|제목=Third-party open-source software Curl|웹사이트=GitHub|출판사=OpenAtom OpenHarmony|확인날짜=17 March 2024}}</ref><ref name="Microsoft Techcommunity" />

libcurl 라이브러리는 자유 소프트웨어이며 [[스레드 안전]]하며 [[IPv6]]과 호환된다. [[C (프로그래밍 언어)|C]] / [[C++]], [[자바 (프로그래밍 언어)|자바]], [[줄리아 (프로그래밍 언어)|줄리아]] (번들 포함), [[PHP]] 및 [[파이썬]]을 포함하여 50개 이상의 [[컴퓨터 언어|언어]]에서 [[언어 바인딩]]으로 사용할 수 있다.<ref>{{웹 인용|url=https://curl.se/libcurl/bindings.html|제목=libcurl bindings|출판사=curl.se}}</ref>

libcurl 라이브러리는 [[IBM i]] 의 GnuTLS, mbed TLS, [[네트워크 보안 서비스|NSS]], [[gskit]], 윈도우의 [[보안 지원 제공자 인터페이스]], macOS 및 iOS의 Secure Transport, [[OpenSSL]], [[OpenSSL|BoringSSL]], [[LibreSSL]], [[AmiSSL]], [[WolfSSL]], [[BearSSL]] 및 [[Rustls]]을 통한 [[전송 계층 보안]]을 지원한다.<ref>{{웹 인용|url=https://daniel.haxx.se/blog/2021/02/09/curl-supports-rustls/|제목=curl supports rustls {{!}} daniel.haxx.se|날짜=9 February 2021|언어=en-US|확인날짜=2022-01-01}}</ref>

== curl ==
curl은 [[URL]] 구문을 입력해 인터넷에서 파일을 포함한 데이터를 가져오거나 보내는 명령줄 도구이다. 컬은 libcurl을 사용하므로 libcurl이 지원하는 모든 프로토콜을 지원한다.<ref name="curl1">{{웹 인용|url=https://curl.se/docs/manpage.html|제목=curl - How To Use|웹사이트=curl.se}}</ref>

== 명령 줄에서의 cURL 사용 예 ==
cURL을 사용할 때는 curl을 명령 줄에 먼저 입력한 다음에 출력을 받아올 URL을 뒤이어 추가한다.

[[example.com]] 홈페이지를 받아오려면 다음과 같이 입력한다:
 curl www.example.com
컬은 기본적으로 시스템(보통 터미널 창)에 지정된 표준 출력으로 검색한 출력을 표시하며, 따라서 대부분의 시스템에서 위 명령을 실행하면 터미널 창에 www.example.com 소스 코드가 표시된다. 대신 -o 플래그를 사용하여 출력을 파일에 저장할 수 있다.<syntaxhighlight lang="console">
$ curl -o example.html www.example.com
</syntaxhighlight>추가 옵션을 통해 다른 기능을 사용할 수 있다.

== 같이 보기 ==
{{포털|자유 소프트웨어}}
* 컬로더(curl-loader) – 컬 기반의 오픈 소스 테스트 도구
* [[libwww]] – 명령줄 인터페이스와 함께된 초기 인터넷 관련라이브러리
* [[파워셸]] – ''iwr'' (Invoke-WebRequest) 명령어와 클래스 web-client에는 컬과 유사한 기능이 있었다.<ref name = "Ryan, Ryandel, 2018" />
* [[웹 크롤러]] – 웹을 크롤링할 수 있는 인터넷 봇
* [[Wget]] – 관련 라이브러리는 없지만 재귀적으로 다운로드할 수 있는 유사한 명령줄 도구

== 각주 ==
{{각주|2|refs=
<ref name = "FAQ, haxx.se" >{{웹 인용|url=https://curl.se/docs/faq.html|title=curl - Frequently Asked Questions|website=curl.se}}</ref>
<ref name = "Stenberg, haxx.se, 2018" >{{웹 인용|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">{{웹 인용|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" > {{웹 인용| 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" >{{웹 인용|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" >{{웹 인용|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 = "cURL changelog, 2020" > {{웹 인용| 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" > {{웹 인용| 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" > {{웹 인용| 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>}}

== 외부 링크 ==

* {{공식 웹사이트}}
* [https://curl.se/docs/comparison-table.html Comparison of curl vs other open source download tools]
* {{웹 인용|url=https://daniel.haxx.se/docs/curl-vs-wget.html|제목=Comparison of curl vs wget|성=Stenberg|이름=Daniel|저자링크=다니엘 스텐베리|날짜=Nov 9, 2021|원본연도=2007}}

{{윈도우 명령어}}

[[분류:텔넷]]
[[분류:MIT 라이선스 소프트웨어]]
[[분류:HTTP 클라이언트]]
[[분류:C로 작성된 자유 소프트웨어]]
[[분류:다운로드 관리자]]
[[분류:크로스 플랫폼 자유 소프트웨어]]
[[분류:명령줄 소프트웨어]]
[[분류:C 라이브러리]]
[[분류:1997년 소프트웨어]]
[[분류:웹 스크래핑]]