CURL

| developer = Contributors to the cURL project
| released =
| programming language = C
| operating system = AIX, AmigaOS, BeOS, Chrome NaCl, DOS, DragonFly BSD, FreeBSD, GNU-Darwin, HPUX, Haiku, Hurd, IRIX, Linux, macOS, MiNT, Midnight BSD, Minix, NetBSD, NetWare, Nexenta, OS/2, Open Server, OpenBSD, Plan9, QNX, RISC OS, Solaris, Syllable, Tru64 UNIX, UnixWare, VMS, Microsoft Windows, z/OS
| platform = IA-32, x64
| genre = FTP client / HTTP client
| license = Free Software: MIT/X derivate license
}} cURL (phát âm là 'curl') là một dự án phần mềm máy tính cung cấp thư viện (libcurl) và công cụ dòng lệnh (curl) để truyền dữ liệu bằng nhiều giao thức khác nhau. cURL được phát hành lần đầu tiên vào năm 1997. cURL là chữ viết tắt của "Client URL". Nhà phát triển ban đầu và chính của cURL là Daniel Stenberg, nhà phát triển phần mềm người Thụy Điển.

Lịch sử
cURL ban đầu được đặt tên là httpget, sau đó đổi thành urlget trước khi mang tên như ngày nay là cURL. Nhà phát triển của cURL, kĩ sư phần mềm người Thụy Điển, Daniel Stenberg tạo ra cURL với mục đích theo dõi tỉ giá hối đoái của các người dùng IRC. hỗ trợ người dùng nhiều tính năng và giao thức như cookie, DICT, FTP, FTPS, Gopher, HTTP/1 (và hỗ trợ cả HTTP/2 và HTTP/3), HTTP POST, HTTP PUT, HTTP proxy tunneling, HTTPS, IMAP, Kerberos, LDAP, MQTT, POP3, RTSP, RTMP, SCP, SMTP, và SMB. libcurl cũng hỗ trợ file URI scheme, SFTP, Telnet, TFTP, cơ chế tiếp tục truyền file nếu gặp gián đoạn (file transfer resume), FTP upload, HTTP form upload, HTTPS certificate, LDAPS, proxies, và xác thực username - password.

Thư viện libcurl cũng tương thích, hoạt động như nhau với nhiều nền tảng và hệ điều hành, như AIX, AmigaOS, Android, BeOS, BlackBerry Tablet OS và BlackBerry 10, OpenVMS, Darwin, DOS, FreeBSD, HP-UX, HURD, iOS, IRIX, Linux, macOS, NetBSD, NetWare, OpenBSD, OS/2, QNX Neutrino, RISC OS, Solaris, Symbian, Tru64, Ultrix, UnixWare, và Microsoft Windows.

Thư viện libcurl cũng có đặc tính an toàn luồng (thread-safe) và tương thích với IPv6. Việc bindings libcurl đến nay đã được thực hiện với hơn 60 ngôn ngữ, điển hình như C/C++, Java, PHP và Python.

Với các tính năng bảo mật, thư viện libcurl hỗ trợ GnuTLS, mbed TLS, NSS, gskit trên IBM, SChannel trên Windows, Secure Transport trên macOS và iOS, SSL/TLS thông qua OpenSSL, Boringssl, libressl, AmiSSL, wolfSSL, BearSSL và Mesalink.

cURL
cURL là một lệnh cho phép lấy hoặc gởi dữ liệu như file thông qua các cú pháp URL. Do sử dụng libcurl, nó hỗ trợ tất cả mọi giao thức mà libcurl hỗ trợ.

cURL sẽ trả về error message nếu remote server sử dụng certificate tự xác thực (self-signed certificate), hoặc nếu certificate của remote server không được kí bởi một CA trong CA cert file. Tùy chọn -k hoặc—insecure sẽ được dùng để bỏ qua quá trình xác thực certificate. Thay vào đó, nếu remote server được tin tưởng, CA certificate của remote server sẽ được thêm vào file CA certificate.

Ví dụ
Một chương trình cơ bản với cURL để lấy thông tin trả về từ URL example.com:
$ curl www.example.com

Mặc định, kết quả trả về từ cURL được hiển thị trên cửa sổ command prompt (khi nhập chương trình trên trên command prompt). Do đó, khi chạy chương trình trên sẽ trả về mã nguồn của www.example.com trên cửa sổ command prompt. Cờ -o được dùng để lưu kết quả trả về vào một file:
$ curl -o example.html www.example.com

Xem thêm

curl-loader: một công cụ mã nguồn mở dựa trên cURL
libwww: một thư viên trước đó hỗ trợ giao diện dòng lệnh
PowerShell: iwr (Invoke-WebRequest) Windows PowerShell có chức năng giống curl, như lớp Web-client
Web crawler: một internet bot có thể lấy nội dung của website
wget: một công cụ dòng lệnh tương tự như curl, hỗ trợ tải xuống nhưng không hỗ trợ thư viện

Tham khảo

Liên kết ngoài

So sánh cURL với các công cụ tải xuống nguồn mở khác
So sánh cURL vs wget