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


258

Tôi muốn biết sự khác biệt giữa curlwget. Cả hai đều được sử dụng để có được các tập tin và tài liệu nhưng sự khác biệt chính giữa chúng.

Tại sao có hai chương trình khác nhau?


5
Sự khác biệt chính là wget được sử dụng để tải xuống mọi thứ trong khi curl được sử dụng để kiểm tra giao tiếp bằng cách sử dụng một giao thức cụ thể.
Pithikos


Câu trả lời:


265

Sự khác biệt chính là:

  • wgetĐiểm mạnh lớn curlcủa nó so với khả năng tải đệ quy.
  • wgetchỉ là dòng lệnh. Không có lib hay bất cứ thứ gì, nhưng curlcác tính năng của được cung cấp bởi libcurl.
  • curlhỗ trợ FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, RTMPRTSP. wgethỗ trợ HTTP, HTTPSFTP.
  • curlxây dựng và chạy trên nhiều nền tảng hơn wget.
  • wgetđược phát hành theo giấy phép copyleft phần mềm miễn phí (GNU GPL). curlđược phát hành theo giấy phép cho phép phần mềm miễn phí (phái sinh MIT).
  • curlcung cấp khả năng tải lên và gửi. wgetchỉ cung cấp hỗ trợ POST HTTP đơn giản.

Bạn có thể xem thêm chi tiết tại liên kết sau:

quăn vs Wget


1
Cảm ơn, đây chính xác là những gì tôi đã tự hỏi trong vài giờ. Tôi đã sử dụng wget để thực hiện một con nhện đệ quy trên một trang web, dường như bị đình trệ trên một trang có hàng trăm liên kết bazillion trên đó. Thực tế là nó chạy ở CPU 100% trên một lõi. Hy vọng rằng có một cái gì đó tốt hơn đó là điều đa lõi mới lạ mà tôi đã nghe nói.
Brian đứng đầu

1
Một trong những điều wgetkhông phù hợp với câu trả lời này là khả năng phản chiếu http (hoặc 'spidering'). curllà rất tốt ở những gì nó làm, nhưng một mình nó không có ý định được sử dụng để phản chiếu một trang web.
jsbillings

Điều gì về wput là một bí danh, hỗ trợ ftp.
mckenzm

1
Các cụm từ này không có ý nghĩa: "và tất cả bản quyền được gán cho FSF", "hoàn toàn độc lập và độc lập, hoàn toàn không có tổ chức nuôi dạy con cái". Rõ ràng là tác giả của cURL là chủ sở hữu bản quyền của nó. Rõ ràng là tác giả của wget là chủ sở hữu bản quyền của nó. Nhưng cả hai đều miễn phí như trong phần mềm tự do. Thay vào đó, bạn có thể nói rằng wget nằm dưới giấy phép copyleft và cURL theo giấy phép cho phép.
Valerio Bozz

1
@ValerioBozz: Thật ra là không. Cả curl và wget đều là các dự án cộng đồng. Với curl, mỗi người sở hữu bản quyền cho mã mà họ đóng góp. Với Wget, như với hầu hết các chương trình GNU khác, các tác giả khác nhau đã trao bản quyền của họ cho FSF. Đó là, họ không sở hữu mã đó nữa. Điều này là để cho phép FSF thực thi nghiêm chỉnh copyleft và cấp lại mã nếu được yêu cầu.
darnir

57

Trong một vài từ:

  • wget là một công cụ để tải tập tin từ máy chủ
  • curl là một công cụ cho phép bạn trao đổi yêu cầu / phản hồi với máy chủ

wget

Wget chỉ cho phép bạn tải xuống các tệp từ HTTP/ HTTPShoặc FTPmáy chủ. Bạn cung cấp cho nó một liên kết và nó tự động tải tập tin nơi liên kết trỏ đến. Nó xây dựng yêu cầu tự động.

Xoăn

Curl trái ngược với wget cho phép bạn xây dựng yêu cầu như bạn muốn . Điều này mang lại rất nhiều sự tự do cho người dùng và làm cho một công cụ gỡ lỗi tuyệt vời. Thêm vào đó là sự khác biệt chính khác giữa hai loại: rất nhiều giao thức được hỗ trợ. Hỗ trợ curl FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, Telnet, DICT, LDAP, LDAPS, IMAP, POP3, SMTP, RTSPURI. Kết hợp hai điểm chính này và bạn có một công cụ tuyệt vời để kiểm tra các giao thức, kiểm tra cấu hình máy chủ, v.v.

Như nhiều người nói, bạn có thể tải xuống một tập tin với curl. Tuy nhiên, điều đó chỉ hữu ích nếu bạn muốn tải xuống một tệp từ máy chủ sử dụng giao thức mà wget không hỗ trợ.


2
Trên thực tế wgetcũng theo chuyển hướng sau đó lưu các phản ứng không giống như curl. Cả hai đều có thể đạt được điều ngược lại với hành vi mặc định wget -qO - http://google.co.uk/ hoặccurl http://google.co.uk/ > index.html
Matt

1
@mtm curl http://google.co.uk/ > index.htmlkhông sử dụng chức năng sẵn có. Dù sao, sự khác biệt chính là mục đích mỗi công cụ được tạo ra. Không thể phủ nhận rằng các công cụ phát triển và nhiều lần đi chệch khỏi quỹ đạo ban đầu của chúng.
Pithikos

1
@mtm curl http://google.co.uk -o index.htmlsẽ sử dụng nội bộ của curl thay vì chuyển hướng đầu ra shell với >.
Petrus Repo

19

Trên thực tế, sự khác biệt chính là curlbao gồm một thư viện ( libcurl) và thư viện đó được sử dụng rộng rãi bởi các ứng dụng khác. wgetlà độc lập.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.