Sự khác biệt giữa wget và curl là gì?

What Is Difference Between Wget Vs Curl



Chúng tôi thường cần tải tệp từ máy chủ từ xa xuống máy cục bộ của mình. Trên màn hình nền đồ họa, chúng ta có thể sử dụng trình duyệt GUI và nhấp vào nút tải xuống. Tuy nhiên, trên một thiết bị đầu cuối, chúng ta cần sử dụng các công cụ được phát triển cho thiết bị đầu cuối. Khi tải tệp xuống từ thiết bị đầu cuối, bốn công cụ thường xuất hiện: Xoăn , vai , wget , và aria2 . Mặc dù axel và aria2 có thể không được nhiều người biết đến, nhưng hầu hết người dùng thiết bị đầu cuối đều biết curl và wget.

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 cURL

sudo apt-get cài đặtXoăn

# cài đặt tiện ích

sudo apt-get cài đặt wget

Arch / Manjaro:

# cài đặt cURL

sudopacman-NSXoăn

# cài đặt tiện ích

sudopacman-NS wget

REHL / CentOS / Fedora:

# cài đặt cURL

sudo 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.html

cuộ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.zst

wget --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.