Khác biệt giữa bản sửa đổi của “CURL”

Bách khoa toàn thư mở Wikipedia
Nội dung được xóa Nội dung được thêm vào
nKhông có tóm lược sửa đổi
n clean up, replaced: <references /> → {{tham khảo}} using AWB
Dòng 33: Dòng 33:
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ợ.<ref name=":1" />
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ợ.<ref name=":1" />


Mặc định, cURL hỗ trợ HTTPS và thực hiện xác thực với SSL (SSL certificate) khi người dụng sử dụng HTTPS. Khi cURL kết nối tới một remote server thông qua HTTPS, nó sẽ có được chứng thực (certificate) của server, sau đó kiểm tra CA certificate của server để xác minh server đó có thực sự là server cần truy cập không. Một vài gói cURL được đóng gói với file CA certificate. Dòng lệnh cURL hỗ trợ thêm các tùy chọn để chỉ ra CA certificate như --cacert và --capath. Tùy chọn --cacert có thể được dùng để chỉ ra vị trí lưu file CA certificate. Trên Windows, nếu một file CA certificate không được chỉ định, cURL sẽ tìm file CA certificate với tên “curl-ca-bundle.crt” trong các thư mục sau theo trình tự:
Mặc định, cURL hỗ trợ HTTPS và thực hiện xác thực với SSL (SSL certificate) khi người dụng sử dụng HTTPS. Khi cURL kết nối tới một remote server thông qua HTTPS, nó sẽ có được chứng thực (certificate) của server, sau đó kiểm tra CA certificate của server để xác minh server đó có thực sự là server cần truy cập không. Một vài gói cURL được đóng gói với file CA certificate. Dòng lệnh cURL hỗ trợ thêm các tùy chọn để chỉ ra CA certificate như—cacert và—capath. Tùy chọn—cacert có thể được dùng để chỉ ra vị trí lưu file CA certificate. Trên Windows, nếu một file CA certificate không được chỉ định, cURL sẽ tìm file CA certificate với tên “curl-ca-bundle.crt” trong các thư mục sau theo trình tự:


# Thư mục lưu chương trình cURL
# Thư mục lưu chương trình cURL
Dòng 41: Dòng 41:
# Các thư mục được lưu trong biến môi trường %PATH%<ref>{{Chú thích web|url=https://curl.se/docs/sslcerts.html|tựa đề=SSL Certificate Verification|tác giả=|họ=|tên=|ngày=|website=curl.se|url lưu trữ=|ngày lưu trữ=|url hỏng=|ngày truy cập=2020-12-07}}</ref>
# Các thư mục được lưu trong biến môi trường %PATH%<ref>{{Chú thích web|url=https://curl.se/docs/sslcerts.html|tựa đề=SSL Certificate Verification|tác giả=|họ=|tên=|ngày=|website=curl.se|url lưu trữ=|ngày lưu trữ=|url hỏng=|ngày truy cập=2020-12-07}}</ref>


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.
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ụ ==
== Ví dụ ==
Dòng 58: Dòng 58:
* PowerShell: ''iwr'' (Invoke-WebRequest) Windows PowerShell có chức năng giống curl, như lớp Web-client
* 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
* 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
* [[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
{{Chủ đề|Free and open-source software}}
{{Chủ đề|Free and open-source software}}


== Tham khảo ==
== Tham khảo ==
{{tham khảo}}
<references />
== Liên kết ngoài ==
== Liên kết ngoài ==



Phiên bản lúc 06:29, ngày 31 tháng 12 năm 2021

cURL
Thiết kế bởiDaniel Stenberg[1]
Phát triển bởiContributors to the cURL project
Phát hành lần đầu1997; 27 năm trước (1997)[2]
Kho mã nguồn
Viết bằngC
Hệ điều hànhAIX, 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
Nền tảngIA-32, x64
Thể loạiFTP client / HTTP client
Giấy phépFree Software: MIT/X derivate license
Websitecurl.se

cURL (phát âm là 'curl'[3]) 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".[4] 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.[1]

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.[5][6] 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.[1]

libcurl

libcurl là một thư viện phía client[7] hỗ trợ người dùng nhiều tính năng và giao thức như cookie, DICT, FTP, FTPS, Gopher, HTTP/1[8] (và hỗ trợ cả HTTP/2HTTP/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.[9]

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 OSBlackBerry 10,[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.[11]

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.[cần dẫn nguồn]

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, BearSSLMesalink.[cần dẫn nguồn]

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ợ.[9]

Mặc định, cURL hỗ trợ HTTPS và thực hiện xác thực với SSL (SSL certificate) khi người dụng sử dụng HTTPS. Khi cURL kết nối tới một remote server thông qua HTTPS, nó sẽ có được chứng thực (certificate) của server, sau đó kiểm tra CA certificate của server để xác minh server đó có thực sự là server cần truy cập không. Một vài gói cURL được đóng gói với file CA certificate. Dòng lệnh cURL hỗ trợ thêm các tùy chọn để chỉ ra CA certificate như—cacert và—capath. Tùy chọn—cacert có thể được dùng để chỉ ra vị trí lưu file CA certificate. Trên Windows, nếu một file CA certificate không được chỉ định, cURL sẽ tìm file CA certificate với tên “curl-ca-bundle.crt” trong các thư mục sau theo trình tự:

  1. Thư mục lưu chương trình cURL
  2. Thư mục làm việc hiện tại
  3. Thư mục hê thống Windows (Windows system directory)
  4. Thư mục Windows (Windows directory)
  5. Các thư mục được lưu trong biến môi trường %PATH%[12]

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

  1. ^ a b c Daniel Stenberg (20 tháng 3 năm 2015). “curl, 17 years old today”. Truy cập ngày 19 tháng 11 năm 2020.
  2. ^ Stenberg, Daniel (20 tháng 3 năm 2015). “curl, 17 years old today”. daniel.haxx.se. Truy cập ngày 7 tháng 12 năm 2020.
  3. ^ cURL - Frequently Asked Questions
  4. ^ Stenberg, Daniel. "Origin of the name". curl.haxx.se/. Truy cập 2018-04-25.
  5. ^ “Changelog”. Truy cập ngày 19 tháng 11 năm 2020.
  6. ^ Daniel Stenberg (4 tháng 1 năm 2020). “Restored complete curl changelog”. Truy cập ngày 19 tháng 11 năm 2020.
  7. ^ M. Tim Jones (8 tháng 9 năm 2009). “Conversing through the Internet with cURL and libcurl”. IBM Developerworks. Bản gốc lưu trữ ngày 22 tháng 4 năm 2019. Truy cập ngày 21 tháng 11 năm 2020.
  8. ^ “cURL, Github commit”. Bản gốc lưu trữ ngày 5 tháng 8 năm 2019. Truy cập ngày 21 tháng 11 năm 2020.
  9. ^ a b “curl.1 the man page”. Truy cập ngày 30 tháng 11 năm 2020.
  10. ^ “Open Source Components for the Native SDK for BlackBerry® Tablet OS”. Truy cập ngày 12 tháng 4 năm 2020.
  11. ^ “Tar and Curl Come to Windows!”. 21 tháng 3 năm 2019. Truy cập ngày 4 tháng 12 năm 2020.
  12. ^ “SSL Certificate Verification”. curl.se. Truy cập ngày 7 tháng 12 năm 2020.

Liên kết ngoài