curl是利用URL語法在命令行方式下工作的開源文件傳輸工具。
它支持很多協議:DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP,
LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP。
curl同樣支持SSL證書,HTTP POST, HTTP
PUT,FTP上傳,基於表單的HTTP上傳,代理(proxies)、cookies、用戶名/密碼認證(Basic, Digest,
NTLM等)、下載文件斷點續傳,上載文件斷點續傳(file transfer resume), and TFTP等協議。
同curl壹樣,libcurl也支持SSL證書,HTTP POST, HTTP
PUT,FTP上傳,基於表單的HTTP上傳,代理(proxies)、cookies、用戶名/密碼認證(Basic, Digest,
NTLM等)、下載文件斷點續傳,上載文件斷點續傳(file transfer resume),http代理服務器管道(proxy
tunneling)等。
libcurl是高度可移植的,可以工作在不同的平臺上,支持Windows,Unix,Linux等。
libcurl是免費的,線程安全的,IPV6兼容的,同事它還有很多其他非常豐富的特性。libcurl已經被很多知名的大企業以及應用程序所采用。
可以在這裏獲取libcurl的源碼及相關文檔。
curl與libcurl對比
相同點
curl和libcurl都可以利用多種多樣的協議來傳輸文件,包括HTTP, HTTPS, FTP, FTPS, GOPHER, LDAP, DICT, TELNET and FILE等。
不同點
curl是命令行工具,可以通過shell或腳本來運行curl。curl底層所使用的庫是libcurl。
libcurl是壹個庫,通常與別的程序綁定在壹起使用,如命令行工具curl就是封裝了libcurl庫。所以我們也可以在妳自己的程序或項目中使用libcurl以獲得類似CURL的強大功能。接下來將要介紹的PHP擴展就是對curl的壹個封裝。