Вы не можете выбрать более 25 тем
			Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
		
		
		
		
		
			
		
			
				
	
	
		
			433 строки
		
	
	
		
			12 KiB
		
	
	
	
		
			Markdown
		
	
			
		
		
	
	
			433 строки
		
	
	
		
			12 KiB
		
	
	
	
		
			Markdown
		
	
How curl Became Like This
 | 
						|
=========================
 | 
						|
 | 
						|
Towards the end of 1996, Daniel 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. All the necessary data were published on the Web; he just needed to
 | 
						|
automate their retrieval.
 | 
						|
 | 
						|
1996
 | 
						|
----
 | 
						|
 | 
						|
On November 11, 1996 the Brazilian developer Rafael Sagula wrote and released
 | 
						|
HttpGet version 0.1.
 | 
						|
 | 
						|
Daniel extended this existing command-line open-source tool. After a few minor
 | 
						|
adjustments, it did just what he needed. The first release with Daniel's
 | 
						|
additions was 0.2, released on December 17, 1996. Daniel quickly became the
 | 
						|
new maintainer of the project.
 | 
						|
 | 
						|
1997
 | 
						|
----
 | 
						|
 | 
						|
HttpGet 0.3 was released in January 1997 and now it accepted HTTP URLs on the
 | 
						|
command line.
 | 
						|
 | 
						|
HttpGet 1.0 was released on April 8th 1997 with brand new HTTP proxy support.
 | 
						|
 | 
						|
We soon found and fixed support for getting currencies over GOPHER. Once FTP
 | 
						|
download support was added, the name of the project was changed and urlget 2.0
 | 
						|
was released in August 1997. The http-only days were already passed.
 | 
						|
 | 
						|
Version 2.2 was released on August 14 1997 and introduced support to build for
 | 
						|
and run on Windows and Solaris.
 | 
						|
 | 
						|
November 24 1997: Version 3.1 added FTP upload support.
 | 
						|
 | 
						|
Version 3.5 added support for HTTP POST.
 | 
						|
 | 
						|
1998
 | 
						|
----
 | 
						|
 | 
						|
February 4: urlget 3.10
 | 
						|
 | 
						|
February 9: urlget 3.11
 | 
						|
 | 
						|
March 14: urlget 3.12 added proxy authentication.
 | 
						|
 | 
						|
The project slowly grew bigger. With upload capabilities, the name was once
 | 
						|
again misleading and a second name change was made. On March 20, 1998 curl 4
 | 
						|
was released. (The version numbering from the previous names was kept.)
 | 
						|
 | 
						|
(Unrelated to this project a company called Curl Corporation registered a US
 | 
						|
trademark on the name "CURL" on May 18 1998. That company had then already
 | 
						|
registered the curl.com domain back in November of the previous year. All this
 | 
						|
was revealed to us much later.)
 | 
						|
 | 
						|
SSL support was added, powered by the SSLeay library.
 | 
						|
 | 
						|
August: first announcement of curl on freshmeat.net.
 | 
						|
 | 
						|
October: with the curl 4.9 release and the introduction of cookie support,
 | 
						|
curl was no longer released under the GPL license. Now we are at 4000 lines of
 | 
						|
code, we switched over to the MPL license to restrict the effects of
 | 
						|
"copyleft".
 | 
						|
 | 
						|
November: configure script and reported successful compiles on several
 | 
						|
major operating systems. The never-quite-understood -F option was added and
 | 
						|
curl could now simulate quite a lot of a browser. TELNET support was added.
 | 
						|
 | 
						|
Curl 5 was released in December 1998 and introduced the first ever curl man
 | 
						|
page. People started making Linux RPM packages out of it.
 | 
						|
 | 
						|
1999
 | 
						|
----
 | 
						|
 | 
						|
January: DICT support added.
 | 
						|
 | 
						|
OpenSSL took over and SSLeay was abandoned.
 | 
						|
 | 
						|
May: first Debian package.
 | 
						|
 | 
						|
August: LDAP:// and FILE:// support added. The curl website gets 1300 visits
 | 
						|
weekly. Moved site to curl.haxx.nu.
 | 
						|
 | 
						|
September: Released curl 6.0. 15000 lines of code.
 | 
						|
 | 
						|
December 28: added the project on Sourceforge and started using its services
 | 
						|
for managing the project.
 | 
						|
 | 
						|
2000
 | 
						|
----
 | 
						|
 | 
						|
Spring: major internal overhaul to provide a suitable library interface.
 | 
						|
The first non-beta release was named 7.1 and arrived in August. This offered
 | 
						|
the easy interface and turned out to be the beginning of actually getting
 | 
						|
other software and programs to be based on and powered by libcurl. Almost
 | 
						|
20000 lines of code.
 | 
						|
 | 
						|
June: the curl site moves to "curl.haxx.se"
 | 
						|
 | 
						|
August, the curl website gets 4000 visits weekly.
 | 
						|
 | 
						|
The PHP guys adopted libcurl already the same month, when the first ever third
 | 
						|
party libcurl binding showed up. CURL has been a supported module in PHP since
 | 
						|
the release of PHP 4.0.2. This would soon get followers. More than 16
 | 
						|
different bindings exist at the time of this writing.
 | 
						|
 | 
						|
September: kerberos4 support was added.
 | 
						|
 | 
						|
November: started the work on a test suite for curl. It was later re-written
 | 
						|
from scratch again. The libcurl major SONAME number was set to 1.
 | 
						|
 | 
						|
2001
 | 
						|
----
 | 
						|
 | 
						|
January: Daniel released curl 7.5.2 under a new license again: MIT (or
 | 
						|
MPL). The MIT license is extremely liberal and can be combined with GPL
 | 
						|
in other projects. This would finally put an end to the "complaints" from
 | 
						|
people involved in GPLed projects that previously were prohibited from using
 | 
						|
libcurl while it was released under MPL only. (Due to the fact that MPL is
 | 
						|
deemed "GPL incompatible".)
 | 
						|
 | 
						|
March 22: curl supports HTTP 1.1 starting with the release of 7.7. This
 | 
						|
also introduced libcurl's ability to do persistent connections. 24000 lines of
 | 
						|
code. The libcurl major SONAME number was bumped to 2 due to this overhaul.
 | 
						|
The first experimental ftps:// support was added.
 | 
						|
 | 
						|
August: The curl website gets 8000 visits weekly. Curl Corporation contacted
 | 
						|
Daniel to discuss "the name issue". After Daniel's reply, they have never
 | 
						|
since got back in touch again.
 | 
						|
 | 
						|
September: libcurl 7.9 introduces cookie jar and curl_formadd(). During the
 | 
						|
forthcoming 7.9.x releases, we introduced the multi interface slowly and
 | 
						|
without many whistles.
 | 
						|
 | 
						|
September 25: curl (7.7.2) is bundled in Mac OS X (10.1) for the first time. It was
 | 
						|
already becoming more and more of a standard utility of Linux distributions
 | 
						|
and a regular in the BSD ports collections.
 | 
						|
 | 
						|
2002
 | 
						|
----
 | 
						|
 | 
						|
June: the curl website gets 13000 visits weekly. curl and libcurl is
 | 
						|
35000 lines of code. Reported successful compiles on more than 40 combinations
 | 
						|
of CPUs and operating systems.
 | 
						|
 | 
						|
To estimate the number of users of the curl tool or libcurl library is next to
 | 
						|
impossible. Around 5000 downloaded packages each week from the main site gives
 | 
						|
a hint, but the packages are mirrored extensively, bundled with numerous OS
 | 
						|
distributions and otherwise retrieved as part of other software.
 | 
						|
 | 
						|
October 1: with the release of curl 7.10 it is released under the MIT license
 | 
						|
only.
 | 
						|
 | 
						|
Starting with 7.10, curl verifies SSL server certificates by default.
 | 
						|
 | 
						|
2003
 | 
						|
----
 | 
						|
 | 
						|
January: Started working on the distributed curl tests. The autobuilds.
 | 
						|
 | 
						|
February: the curl site averages at 20000 visits weekly. At any given moment,
 | 
						|
there's an average of 3 people browsing the website.
 | 
						|
 | 
						|
Multiple new authentication schemes are supported: Digest (May), NTLM (June)
 | 
						|
and Negotiate (June).
 | 
						|
 | 
						|
November: curl 7.10.8 is released. 45000 lines of code. ~55000 unique visitors
 | 
						|
to the website. Five official web mirrors.
 | 
						|
 | 
						|
December: full-fledged SSL for FTP is supported.
 | 
						|
 | 
						|
2004
 | 
						|
----
 | 
						|
 | 
						|
January: curl 7.11.0 introduced large file support.
 | 
						|
 | 
						|
June: curl 7.12.0 introduced IDN support. 10 official web mirrors.
 | 
						|
 | 
						|
This release bumped the major SONAME to 3 due to the removal of the
 | 
						|
curl_formparse() function
 | 
						|
 | 
						|
August: Curl and libcurl 7.12.1
 | 
						|
 | 
						|
    Public curl release number:                82
 | 
						|
    Releases counted from the very beginning: 109
 | 
						|
    Available command line options:            96
 | 
						|
    Available curl_easy_setopt() options:     120
 | 
						|
    Number of public functions in libcurl:     36
 | 
						|
    Amount of public website mirrors:         12
 | 
						|
    Number of known libcurl bindings:          26
 | 
						|
 | 
						|
2005
 | 
						|
----
 | 
						|
 | 
						|
April: GnuTLS can now optionally be used for the secure layer when curl is
 | 
						|
built.
 | 
						|
 | 
						|
April: Added the multi_socket() API
 | 
						|
 | 
						|
September: TFTP support was added.
 | 
						|
 | 
						|
More than 100,000 unique visitors of the curl website. 25 mirrors.
 | 
						|
 | 
						|
December: security vulnerability: libcurl URL Buffer Overflow
 | 
						|
 | 
						|
2006
 | 
						|
----
 | 
						|
 | 
						|
January: We dropped support for Gopher. We found bugs in the implementation
 | 
						|
that turned out to have been introduced years ago, so with the conclusion that
 | 
						|
nobody had found out in all this time we removed it instead of fixing it.
 | 
						|
 | 
						|
March: security vulnerability: libcurl TFTP Packet Buffer Overflow
 | 
						|
 | 
						|
September: The major SONAME number for libcurl was bumped to 4 due to the
 | 
						|
removal of ftp third party transfer support.
 | 
						|
 | 
						|
November: Added SCP and SFTP support
 | 
						|
 | 
						|
2007
 | 
						|
----
 | 
						|
 | 
						|
February: Added support for the Mozilla NSS library to do the SSL/TLS stuff
 | 
						|
 | 
						|
July: security vulnerability: libcurl GnuTLS insufficient cert verification
 | 
						|
 | 
						|
2008
 | 
						|
----
 | 
						|
 | 
						|
November:
 | 
						|
 | 
						|
    Command line options:         128
 | 
						|
    curl_easy_setopt() options:   158
 | 
						|
    Public functions in libcurl:   58
 | 
						|
    Known libcurl bindings:        37
 | 
						|
    Contributors:                 683
 | 
						|
 | 
						|
 145,000 unique visitors. >100 GB downloaded.
 | 
						|
 | 
						|
2009
 | 
						|
----
 | 
						|
 | 
						|
March: security vulnerability: libcurl Arbitrary File Access
 | 
						|
 | 
						|
April: added CMake support
 | 
						|
 | 
						|
August: security vulnerability: libcurl embedded zero in cert name
 | 
						|
 | 
						|
December: Added support for IMAP, POP3 and SMTP
 | 
						|
 | 
						|
2010
 | 
						|
----
 | 
						|
 | 
						|
January: Added support for RTSP
 | 
						|
 | 
						|
February: security vulnerability: libcurl data callback excessive length
 | 
						|
 | 
						|
March: The project switched over to use git (hosted by GitHub) instead of CVS
 | 
						|
for source code control
 | 
						|
 | 
						|
May: Added support for RTMP
 | 
						|
 | 
						|
Added support for PolarSSL to do the SSL/TLS stuff
 | 
						|
 | 
						|
August:
 | 
						|
 | 
						|
    Public curl releases:         117
 | 
						|
    Command line options:         138
 | 
						|
    curl_easy_setopt() options:   180
 | 
						|
    Public functions in libcurl:   58
 | 
						|
    Known libcurl bindings:        39
 | 
						|
    Contributors:                 808
 | 
						|
 | 
						|
 Gopher support added (re-added actually, see January 2006)
 | 
						|
 | 
						|
2011
 | 
						|
----
 | 
						|
 | 
						|
February: added support for the axTLS backend
 | 
						|
 | 
						|
April: added the cyassl backend (later renamed to WolfSSL)
 | 
						|
 | 
						|
2012
 | 
						|
----
 | 
						|
 | 
						|
 July: Added support for Schannel (native Windows TLS backend) and Darwin SSL
 | 
						|
 (Native Mac OS X and iOS TLS backend).
 | 
						|
 | 
						|
 Supports metalink
 | 
						|
 | 
						|
 October: SSH-agent support.
 | 
						|
 | 
						|
2013
 | 
						|
----
 | 
						|
 | 
						|
 February: Cleaned up internals to always uses the "multi" non-blocking
 | 
						|
 approach internally and only expose the blocking API with a wrapper.
 | 
						|
 | 
						|
 September: First small steps on supporting HTTP/2 with nghttp2.
 | 
						|
 | 
						|
 October: Removed krb4 support.
 | 
						|
 | 
						|
 December: Happy eyeballs.
 | 
						|
 | 
						|
2014
 | 
						|
----
 | 
						|
 | 
						|
 March: first real release supporting HTTP/2
 | 
						|
 | 
						|
 September: Website had 245,000 unique visitors and served 236GB data
 | 
						|
 | 
						|
 SMB and SMBS support
 | 
						|
 | 
						|
2015
 | 
						|
----
 | 
						|
 | 
						|
 June: support for multiplexing with HTTP/2
 | 
						|
 | 
						|
 August: support for HTTP/2 server push
 | 
						|
 | 
						|
 December: Public Suffix List
 | 
						|
 | 
						|
2016
 | 
						|
----
 | 
						|
 | 
						|
 January: the curl tool defaults to HTTP/2 for HTTPS URLs
 | 
						|
 | 
						|
 December: curl 7.52.0 introduced support for HTTPS-proxy!
 | 
						|
 | 
						|
 First TLS 1.3 support
 | 
						|
 | 
						|
2017
 | 
						|
----
 | 
						|
 | 
						|
 July: OSS-Fuzz started fuzzing libcurl
 | 
						|
 | 
						|
 September: Added Multi-SSL support
 | 
						|
 | 
						|
 The website serves 3100 GB/month
 | 
						|
 | 
						|
    Public curl releases:         169
 | 
						|
    Command line options:         211
 | 
						|
    curl_easy_setopt() options:   249
 | 
						|
    Public functions in libcurl:  74
 | 
						|
    Contributors:                 1609
 | 
						|
 | 
						|
 October: SSLKEYLOGFILE support, new MIME API
 | 
						|
 | 
						|
 October: Daniel received the Polhem Prize for his work on curl
 | 
						|
 | 
						|
 November: brotli
 | 
						|
 | 
						|
2018
 | 
						|
----
 | 
						|
 | 
						|
 January: new SSH backend powered by libssh
 | 
						|
 | 
						|
 March: starting with the 1803 release of Windows 10, curl is shipped bundled
 | 
						|
 with Microsoft's operating system.
 | 
						|
 | 
						|
 July: curl shows headers using bold type face
 | 
						|
 | 
						|
 October: added DNS-over-HTTPS (DoH) and the URL API
 | 
						|
 | 
						|
 MesaLink is a new supported TLS backend
 | 
						|
 | 
						|
 libcurl now does HTTP/2 (and multiplexing) by default on HTTPS URLs
 | 
						|
 | 
						|
 curl and libcurl are installed in an estimated 5 *billion* instances
 | 
						|
 world-wide.
 | 
						|
 | 
						|
 October 31: Curl and libcurl 7.62.0
 | 
						|
 | 
						|
    Public curl releases:         177
 | 
						|
    Command line options:         219
 | 
						|
    curl_easy_setopt() options:   261
 | 
						|
    Public functions in libcurl:  80
 | 
						|
    Contributors:                 1808
 | 
						|
 | 
						|
 December: removed axTLS support
 | 
						|
 | 
						|
2019
 | 
						|
----
 | 
						|
 | 
						|
 March: added experimental alt-svc support
 | 
						|
 | 
						|
 August: the first HTTP/3 requests with curl.
 | 
						|
 | 
						|
 September: 7.66.0 is released and the tool offers parallel downloads
 | 
						|
 | 
						|
2020
 | 
						|
----
 | 
						|
 | 
						|
 curl and libcurl are installed in an estimated 10 *billion* instances
 | 
						|
 world-wide.
 | 
						|
 | 
						|
 January: added BearSSL support
 | 
						|
 | 
						|
 March: removed support for PolarSSL, added wolfSSH support
 | 
						|
 | 
						|
 April: experimental MQTT support
 | 
						|
 | 
						|
 August: zstd support
 | 
						|
 | 
						|
 November: the website moves to curl.se. The website serves 10TB data monthly.
 | 
						|
 | 
						|
 December: alt-svc support
 | 
						|
 | 
						|
2021
 | 
						|
----
 | 
						|
 | 
						|
 February 3: curl 7.75.0 ships with support for Hyper as an HTTP backend
 | 
						|
 | 
						|
 March 31: curl 7.76.0 ships with support for rustls
 | 
						|
 | 
						|
 July: HSTS is supported
 | 
						|
 | 
						|
2022
 | 
						|
----
 | 
						|
 | 
						|
 March: added --json, removed mesalink support
 | 
						|
 | 
						|
    Public curl releases:         206
 | 
						|
    Command line options:         245
 | 
						|
    curl_easy_setopt() options:   295
 | 
						|
    Public functions in libcurl:  86
 | 
						|
    Contributors:                 2601
 | 
						|
 | 
						|
 The curl.se website serves 16,500 GB/month over 462M requests, the
 | 
						|
 official docker image has been pulled 4,098,015,431 times.
 |