Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

cURL

From Wikipedia, the free encyclopedia
Free URL data transfer client software
Not to be confused withCurl (programming language).
For other uses, seeCurl.
curl
Original authorDaniel Stenberg[1]
DeveloperContributors to the curl project
Initial release1996; 30 years ago (1996)[2]
Stable release
8.18.0[3] Edit this on Wikidata / 7 January 2026
Written inC
Platform29 platforms (see§ libcurl for details)
TypeWeb client (supports e.g.HTTPS, andFTP)
Licensecurl license[4][5] (inspired by theMIT License[5]) and a fraction uses theISC
Websitecurl.se Edit this on Wikidata
Repository

cURL (pronounced like "curl",[6]/kɜːrl/) is afree and open sourceCLI app foruploading anddownloading individual files. It can download aURL from aweb server overHTTP, and supports a variety of othernetwork protocols,URI schemes, multiple versions of HTTP, andproxying. The project consists of alibrary (libcurl) andcommand-line tool (curl), which have been widely ported to differentcomputing platforms. It was created byDaniel Stenberg, who is still the lead developer of the project.

History

[edit]

The software was first released in 1996,[7] originally namedhttpget and then becameurlget, before adopting the current name ofcurl.[8][9] The name stands for "Client andURL".[10] The original author and lead developer is the Swedish developerDaniel Stenberg, who created curl to power part of anIRC bot, because he wanted to automatically provide currency exchange rates, fetched from a website, to users in anIRCchat room.[2]

Components

[edit]

libcurl

[edit]

libcurl is a client-side URL transferlibrary that powerscurl.[11] It supports numerous internet protocols includingDICT,FILE,FTP,FTPS,GOPHER,GOPHERS,HTTP,HTTPS,IMAP,IMAPS,LDAP,LDAPS,MQTT,POP3,POP3S,RTMP,RTMPS,RTSP,SCP,SFTP,SMB,SMBS,SMTP,SMTPS,TELNET,TFTP,WS andWSS.

libcurl supportsHTTP versions 0.9, 1.0, 1.1,HTTP/2 andHTTP/3 including h2c, prior-knowledge, dual-connect modes, andQUIC with 0-RTT handshakes.

The library provides features such ascookie handling, standard HTTP request methods (GET,POST,PUT,HEAD, multipart form uploads), and authentication mechanisms including Basic, Digest,NTLM, Negotiate,CRAM-MD5, SCRAM-SHA, Kerberos, Bearer tokens, AWS Sigv4,SASL, and reading credentials from .netrc.

libcurl supports a variety of security and transport features, includingTLS1.0-1.3, mutual authentication,STARTTLS,OCSP stapling,Encrypted Client Hello (ECH), False Start, key pinning,post-quantum readiness, session resumption, early data, session import/export,HSTS, Alt-Svc,Public Suffix List (PSL),entity tags (ETags), range requests, transfer compression (gzip,Brotli,zstd), custom headers, custom methods, and redirect following.

It also offers proxy and networking support, includingSOCKS4,SOCKS5,HAProxy, andHTTP proxies with chaining andUnix domain sockets, as well as user-plus-password authentication[12]. Advanced name-resolution features includeDNS-over-HTTPS, customDNS servers, host/port mappings, and DNS caching.

Additional functionality includes file transfer resume,FTP uploading, form-basedHTTP upload,HTTPS certificates, and mechanisms for controlling and monitoring transfers such as configurable timeouts, automatic retries, rate limiting, and detection of stalled connections. The library also provides enhanced reporting features, including JSON-formatted metadata, content-disposition handling,IDN hostname display, and customizable transfer information.

Thelibcurl library is portable, as it builds and works identically on most platforms, including:[13][14][15]

Thelibcurl library isthread-safe andIPv6 compatible.Bindings are available for more than 50languages, includingC,C++,Java,Julia (is bundled with),PHP andPython.[17]

Thelibcurl library supportsSSL/TLS throughGnuTLS,mbedTLS,SChannel (on Windows),OpenSSL,BoringSSL,AWS-LC,QuicTLS,LibreSSL,AmiSSL,wolfSSL andrustls.[18]

curl

[edit]

curl is a command-line tool for getting or sending data, including files, usingURL syntax.curl provides an interface to thelibcurl library; it supports every protocollibcurl supports.[12]

curl supportsHTTPS, and performs SSL or TLS certificate verification by default. Whencurl connects to a remote server via HTTPS, it will obtain the remote server certificate, then checks against itsCA certificate store the validity of the remote server to ensure the remote server is the one it claims to be. Somecurl packages are bundled with a 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.

Starting with Windows 10 version 1809, Windows ships withcurl.exe.[15] On Microsoft Windows, if a CA certificate file is not specified, curl will look for thecurl-ca-bundle.crt file in the following locations, in the order given:[19]

  1. App's folder (wherecurl.exe is located)
  2. Current working directory
  3. C:\Windows\System32 directory
  4. C:\Windows directory
  5. Directories specified in thePATH environment variable

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.

tiny-curl

[edit]

tiny-curl is a lightweight version of libcurl developed by wolfSSL Inc. for embedded and resource-constrained devices. It implements HTTPS functionality in roughly 100 KB of code on typical 32-bit architectures.

Licensing

[edit]

curl and libcurl are distributed under the MIT License. tiny-curl, a version of curl optimized for embedded systems and supported by wolfSSL, is available under both theGNU GPLv3-or-later and commercial licensing.

Rock-solid curl,[20] the long-term support (LTS) edition, uses the same curl license by default, with an option for commercial licensing for organizations that require contractual support or warranty coverage.

See also

[edit]
  • curl-loader – an open-source testing tool based on curl
  • libwww – an early library that comes with a command line interface
  • PowerShell – theiwr (Invoke-WebRequest) Windows PowerShell had functionality similar to curl; class Web-client too.[21]
  • 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

[edit]
  1. ^Stenberg, Daniel (20 March 2015)."curl, 17 years old today".daniel.haxx.se. Retrieved20 March 2015.
  2. ^ab"History of curl - How curl Became Like This". curl. Archived fromthe original on September 30, 2017. RetrievedNovember 17, 2016.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.
  3. ^Daniel Stenberg (7 January 2026)."curl 8.18.0". Retrieved7 January 2026.
  4. ^"curl License".spdx.org.
  5. ^ab"curl - copyright".curl.se.Archived from the original on 2024-01-15. Retrieved2024-01-17.
  6. ^"curl - Frequently Asked Questions".curl.se.
  7. ^"History of curl". fossies.org.Archived from the original on September 17, 2021. RetrievedMay 11, 2021.
  8. ^"Changelog". 4 January 2020. Retrieved4 January 2020.The first curl release. The tool was named urlget before this. And httpget before that.
  9. ^Stenberg, Daniel (4 January 2020)."Restored complete curl changelog"(html).Haxx Se. Retrieved2 January 2020.
  10. ^Stenberg, Daniel."Origin of the name".curl.se. Retrieved2021-03-27.
  11. ^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. Retrieved12 September 2018.
  12. ^ab"curl - How To Use".curl.se.
  13. ^"Third-party open-source software Curl".Gitee. OpenAtom OpenHarmony. Retrieved17 March 2024.
  14. ^"Third-party open-source software Curl".GitHub. OpenAtom OpenHarmony. Retrieved17 March 2024.
  15. ^abTurner, Rich (18 January 2018)."Tar and Curl Come to Windows!".Windows Command Line.Microsoft.
  16. ^"Open Source Components for the Native SDK for BlackBerry Tablet OS". Archived fromthe original on 2013-01-27. Retrieved2017-09-19.
  17. ^"libcurl bindings". curl.se.
  18. ^"curl supports rustls | daniel.haxx.se". 9 February 2021. Retrieved2022-01-01.
  19. ^"curl - SSL CA Certificates".curl.se.
  20. ^"Rock-solid curl".
  21. ^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). Retrieved4 January 2020.Per emulare il comportamento del comando Linux cURL, è sufficiente creare un file cURL.ps1 contenente la seguente riga di codice

External links

[edit]
Wikibooks has a book on the topic of:Guide to Windows Commands


Microsoft
Windows
Freeware
Shareware
Malware
Unix-like
Multi-platform
Related articles
Ecosystem
Interpreters
Terminals
File system navigation
File management
Archiving
Disk management
Processes
Registry
User environment
File contents
Scripting
Networking
Maintenance and care
Boot management
Software development
Miscellaneous
Retrieved from "https://en.wikipedia.org/w/index.php?title=CURL&oldid=1334521733"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp