Trong hướng dẫn này, chúng ta sẽ xem xét curl và wget, cách bắt đầu và quan trọng nhất là sự khác biệt giữa chúng.
CURL là gì?
cURL là một tiện ích dòng lệnh mã nguồn mở và miễn phí cho phép người dùng truyền dữ liệu từ một máy từ xa sang một máy khác mà không có hoặc không có sự tương tác của người dùng. Việc sử dụng CURL phổ biến trong các thiết bị như bộ định tuyến, máy in, điện thoại, máy tính bảng, trình phát đa phương tiện, v.v.
Nó hỗ trợ tải xuống và tải lên bằng các giao thức như HTTP / HTTPS, FTP, SFTP, SCP, IMAP, LDAP / LDAPS, SMB / SMBS, TELNET, POP3, GOPHER, và nhiều hơn nữa.
cURL cũng cung cấp proxy, chuyển tiếp, xác thực người dùng, chứng chỉ SSL, v.v.
Wget là gì?
GNU Wget, thường được gọi là wget, là một tiện ích dòng lệnh miễn phí để truyền tệp bằng HTTP / HTTPS, FTP và FTPS. Nó cung cấp các tính năng như tải xuống đệ quy, kiểm soát băng thông, tiếp tục truyền bị hủy bỏ, tải xuống nền, tệp và thư mục nhân bản đệ quy, v.v.
Làm thế nào để cài đặt cURL và Wget?
cURL và wget là những công cụ phổ biến có sẵn trong các bản phân phối Linux chính; nếu bạn chưa cài đặt một trong hai công cụ, bạn sử dụng các lệnh bên dưới để cài đặt:
Debian / Ubuntu:
# cài đặt cURLsudo apt-get cài đặtXoăn
# cài đặt tiện ích
sudo apt-get cài đặt wget
Arch / Manjaro:
# cài đặt cURLsudopacman-NSXoăn
# cài đặt tiện ích
sudopacman-NS wget
REHL / CentOS / Fedora:
# cài đặt cURLsudo cài đặt yumXoăn
sudodnfTải vềXoăn
# cài đặt tiện ích
sudo cài đặt yum wget
sudodnfTải về wget
Cách sử dụng cURL và Wget (Các trường hợp sử dụng ví dụ)?
Để đảm bảo rằng bạn hiểu những điểm giống và khác nhau giữa cURL và wget, bạn nên xem một vài ví dụ:
Giao thức HTTP / HTTPS:
Cả cURL và wget đều hỗ trợ các giao thức HTTP và HTTPS. Do đó, nếu chúng tôi tải xuống một trang web như linuxhint.com:
cuộn tròn https://linuxhint.com-hoặclinuxhint.htmlcuộn tròn https://linuxhint.com-hoặclinuxhint.html
%Toàn bộ%Nhận%Xferd Tốc độ Trung bình Thời gian Thời gian Thời gian Hiện tại
Tải lên Dload Tổng tốc độ còn lại
100256k0256k0 0166k0-: -: -0: 00: 01 -: -: - 166k
Theo mặc định, cURL sẽ in nội dung của tài nguyên web trong thiết bị đầu cuối. Chúng tôi sử dụng cờ -o để chuyển hướng đầu ra đến một tệp.
Những điều sau áp dụng cho wget:
wgethttps://linuxhint.com--2021-06-2005:09:Bốn năm- https://linuxhint.com/
Đang giải quyết linuxhint.com(linuxhint.com)... 104.21.58.234, 172.67.209.252,2606:4700:3033::6815: 3aea, ...
Đang kết nối với linuxhint.com(linuxhint.com)|104.21.58.234|:443... kết nối.
Yêu cầu HTTP đã được gửi, đang chờ phản hồi ...200VÂNG
Độ dài: không xác định[chữ/html]
Đang lưu vào: ‘index.html’
index.html
[ <=> ]256,25 nghìn 506 nghìn tỷ/NStrong0,5 giây
Năm 2021-06-hai mươi05:09:46 (506KB/NS)- ‘index.html’ đã được lưu[262396]
Mặt khác, Wget lưu tài nguyên được yêu cầu vào một tệp.
Điều tốt cần lưu ý là cả hai công cụ đều tải xuống tài nguyên. Chi tiết ls của hai tệp hiển thị cả hai kích thước tệp.
$ls -NSindex.html linuxhint.html-rw-rw-r-- 1linuxhint linuxhint262396Tháng sáu19 mười lăm:năm mươiindex.html
-rw-rw-r-- 1linuxhint linuxhint262396Tháng sáuhai mươi05:07 linuxhint.html
Giao thức FTP:
Cả cURL và wget đều hỗ trợ tải xuống trên giao thức FTP. Tuy nhiên, cURL hỗ trợ tải lên ftp.
Sử dụng lệnh bên dưới để tải xuống tệp từ máy chủ FTP với wget:
wget --người sử dụng= debian--mật khẩu mở khóa= ’Debian’ ftp://192.168.0.112/backup.zstwget --người sử dụng= debian--mật khẩu mở khóa='debian'ftp://192.168.0.112/backup.zst
--2021-06-2005:29: 06-- ftp://192.168.0.112/backup.zst
=>‘Backup.zst’
Kết nối với 192.168.0.112:hai mươi mốt... kết nối.
Ghi nhật kýtrong nhưdebian ... Đã đăng nhậptrong!
==>SYST ... xong. ==>NKT ... đã xong.
==>LOẠI TÔI ... đã xong. ==>CWD không cần thiết.
==>SIZE backup.zst ... đã xong.
==>PASV ... đã xong. ==>RETR backup.zst ... đã xong.
backup.zst
[ <=> ] 0--.- KB/NStrong0s
Năm 2021-06-hai mươi05:29: 06(0,00NS/NS)- Đã lưu ‘backup.zst’[0]
Sử dụng cuộn tóc, thêm-ucờ là:
Xoăn-udebian: debian ‘ftp://192.168.0.112/backup.zst ’-hoặcbackup.zst
Xoăn-udebian: debian'ftp://192.168.0.112/backup.zst' -hoặcbackup.zst
%Toàn bộ%Nhận%Xferd Tốc độ Trung bình Thời gian Thời gian Thời gian Hiện tại
Tải lên Dload Tổng tốc độ còn lại
0 0 0 0 0 0 0 0-: -: - -: -: - -: -: -0
Để tải lên mộttập tinđếnftpvới cuộn tròn, chúng tôi sử dụng-NStùy chọn như:
Xoăn-udebian: debian-NSbackup1.zst ftp://192.168.0.112/ftp/
Đảm bảo thư mục tồn tại và người dùng có quyền ghi vào nó.
GHI CHÚ: Mặc dù cURL hỗ trợ nhiều loại giao thức, nhưng nó không cung cấp tải xuống đệ quy. Mặt khác, Wget hỗ trợ tải xuống đệ quy bằng cách sử dụng tùy chọn –recursive vì cả giao thức HTTP / HTTPS và FTP / FTPS đều cung cấp chức năng như vậy.
Điểm giống nhau giữa wget và cURL
Bây giờ để đóng băng trên bánh:
- Cả hai công cụ đều hỗ trợ các giao thức tiêu chuẩn như HTTP, HTTPS, FTP, FTPS.
- Cả hai công cụ đều tải xuống tệp từ internet.
- Cả hai công cụ đều hỗ trợ cookie HTTP.
- Cả hai công cụ đều hỗ trợ xuất thành tệp.
- Cả hai công cụ miễn phí và được phát triển tích cực.
- Cả hai công cụ này đều hỗ trợ chuyển hồ sơ.
- Cả hai công cụ đều hỗ trợ HTTP POST.
Sự khác biệt giữa wget và cURL
Dưới đây là một số điểm khác biệt giữa curl và wget:
- Wget là một tiện ích chuyển đơn giản, trong khi curl cung cấp nhiều hơn thế.
- Curl cung cấp thư viện libcurl, thư viện này có thể được mở rộng thành các ứng dụng GUI. Mặt khác, Wget là một tiện ích dòng lệnh đơn giản.
- Wget hỗ trợ ít giao thức hơn so với cURL.
- Tải xuống đệ quy không được hỗ trợ trong curl.
- Wget nguyên bản có sẵn trong các hệ thống Linux, trong khi cURL có sẵn trong các hệ thống Windows.
- cURL hỗ trợ nhiều chuyển giao song song.
- cURL thực hiện giải nén HTTP được mã hóa truyền, trong khi wget thì không.
- cURL hỗ trợ HTTP hai chiều trong khi wget cung cấp một ĐĂNG HTTP đơn giản.
- cURL hỗ trợ nhiều phương thức xác thực HTTP hơn so với wget.
- Wget không hỗ trợ SOCKS.
- Wget yêu cầu cài đặt gnulib.
- Không giống như curl, các tính năng như cookie, dấu thời gian và chuyển hướng theo dõi được bật theo mặc định trong wget. cURL yêu cầu mỗi cái phải được chỉ định rõ ràng.
Phần kết luận
Hướng dẫn này tập trung vào những điểm giống và khác nhau giữa cURL. Mặc dù có vẻ như cURL là lựa chọn ưu việt, nhưng vẫn có những trường hợp wget là lựa chọn tốt nhất.
Lời khuyên của tôi dành cho bạn là hãy chọn những gì phù hợp với bạn.