ความแตกต่างระหว่างขดและ wget คืออะไร?


258

ผมกระตือรือร้นที่จะทราบความแตกต่างระหว่างและcurl wgetทั้งสองใช้เพื่อรับไฟล์และเอกสาร แต่สิ่งที่สำคัญแตกต่างกัน

เหตุใดจึงมีสองโปรแกรมที่แตกต่างกัน


5
ข้อแตกต่างที่สำคัญคือ wget ใช้เพื่อดาวน์โหลดสิ่งต่างๆในขณะที่ curl ใช้สำหรับทดสอบการสื่อสารโดยใช้โปรโตคอลเฉพาะ
Pithikos

9
ข้อเท็จจริงที่น่าสนใจเกี่ยวกับ wget:> สามารถพิมพ์โดยใช้เพียงมือซ้ายบนแป้นพิมพ์ qwerty!
Habeeb Perwad

2
จากcurlผู้แต่ง: daniel.haxx.se/docs/curl-vs-wget.html
Vanni

คำตอบ:


265

ความแตกต่างที่สำคัญคือ:

  • wgetด้านที่แข็งแกร่งที่สำคัญเมื่อเทียบกับcurlคือความสามารถในการดาวน์โหลดซ้ำ
  • wgetเป็นบรรทัดคำสั่งเท่านั้น ไม่มี lib หรืออะไรเลย แต่curlฟีเจอร์ของนั้นขับเคลื่อนโดย libcurl
  • curlสนับสนุนFTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP, และRTMP สนับสนุน, และRTSPwgetHTTPHTTPSFTP
  • curlwgetสร้างและทำงานบนแพลตฟอร์มมากกว่า
  • wgetเผยแพร่ภายใต้ลิขสิทธิ์ซอฟต์แวร์เสรี (GNU GPL) curlถูกเผยแพร่ภายใต้ลิขสิทธิ์ซอฟต์แวร์ฟรีอนุญาต (MIT derivate)
  • curlมีความสามารถในการอัพโหลดและส่ง wgetเสนอการสนับสนุน HTTP POST ธรรมดาเท่านั้น

คุณสามารถดูรายละเอียดเพิ่มเติมได้ที่ลิงค์ต่อไปนี้:

Curl vs Wget


1
ขอบคุณนี่คือสิ่งที่ฉันสงสัยมาหลายชั่วโมงแล้ว ฉันเคยใช้สไปเดอร์แบบเรียกซ้ำในไซต์ดูเหมือนจนตรอกบนหน้าเว็บที่มีลิงค์ถึงหนึ่งหมื่นล้านลิงก์ ความจริงก็คือมันทำงานที่ CPU 100% ในหนึ่งคอร์ หวังว่าจะมีบางสิ่งที่ดีกว่าที่จะทำสิ่งใหม่ ๆ ที่หลากหลายที่ฉันได้ยินมา
Brian Topping

1
สิ่งใดสิ่งหนึ่งwgetที่เหลืออยู่จากคำตอบนี้คือความสามารถในการทำ http mirroring (หรือ 'spidering') curlเก่งมากในสิ่งที่ทำ แต่เพียงอย่างเดียวไม่ได้มีไว้เพื่อใช้ในการทำเว็บไซต์
jsbillings

สิ่งที่เกี่ยวกับ wput เป็นนามแฝงรองรับ ftp
mckenzm

1
วลีเหล่านี้ไม่มีความหมาย: "และลิขสิทธิ์ทั้งหมดถูกกำหนดให้กับ FSF", "เป็นแบบสแตนด์อโลนทั้งหมดและเป็นอิสระโดยไม่ต้องมีการเลี้ยงดูองค์กรเลย" เห็นได้ชัดว่าผู้เขียน cURL เป็นเจ้าของลิขสิทธิ์ของมัน เห็นได้ชัดว่าผู้เขียน wget เป็นเจ้าของลิขสิทธิ์ของมัน แต่ทั้งคู่นั้นฟรีเหมือนซอฟต์แวร์เสรี คุณสามารถพูดได้ว่า wget นั้นอยู่ภายใต้ใบอนุญาตลิขสิทธิและ cURL ภายใต้ใบอนุญาตที่อนุญาต
Valerio Bozz

1
@ValerioBozz: ไม่จริง ทั้ง curl และ wget เป็นโครงการชุมชน ด้วย curl แต่ละคนมีลิขสิทธิ์ในรหัสที่พวกเขามีส่วนร่วม ด้วย Wget เช่นเดียวกับโปรแกรม GNU อื่น ๆ ส่วนใหญ่ผู้เขียนหลายคนมอบลิขสิทธิ์ให้กับ FSF นั่นคือพวกเขาไม่ได้เป็นเจ้าของรหัสนั้นอีกต่อไป นี่คือการอนุญาตให้ FSF บังคับใช้ copyleft อย่างเคร่งครัดและ relicense รหัสหากจำเป็น
darnir

57

ในคำไม่กี่คำ:

  • wget เป็นเครื่องมือในการดาวน์โหลดไฟล์จากเซิร์ฟเวอร์
  • curl เป็นเครื่องมือที่ให้คุณแลกเปลี่ยนการร้องขอ / ตอบกลับกับเซิร์ฟเวอร์

wget

Wget ให้คุณดาวน์โหลดไฟล์จากHTTP/ HTTPSหรือFTPเซิร์ฟเวอร์เท่านั้น คุณให้ลิงค์กับมันและมันจะทำการดาวน์โหลดไฟล์โดยอัตโนมัติที่ลิงก์นั้นชี้ไป มันสร้างคำขอโดยอัตโนมัติ

ขด

Curl ในทางตรงกันข้ามกับ wget ช่วยให้คุณสามารถสร้างการร้องขอตามที่คุณต้องการ ทำให้ผู้ใช้มีอิสระในการใช้งานจำนวนมากและสร้างเครื่องมือการดีบักที่น่าทึ่ง เพิ่มไปที่ความแตกต่างที่สำคัญอื่น ๆ ระหว่างทั้งสอง: มากมายเหลือเฟือของโปรโตคอลที่รองรับ สนับสนุน Curl FTP, FTPS, Gopher, HTTP, HTTPS, SCP, SFTP, TFTP, Telnet, DICT, LDAP, LDAPS, IMAP, POP3, SMTP, และRTSP URIรวมประเด็นสำคัญสองข้อนี้เข้าด้วยกันและคุณมีเครื่องมือที่น่าทึ่งในการทดสอบโปรโตคอลการกำหนดค่าเซิร์ฟเวอร์ทดสอบ ฯลฯ

อย่างที่หลายคนบอกว่าคุณสามารถดาวน์โหลดไฟล์ด้วย curl อย่างไรก็ตามจะมีประโยชน์ก็ต่อเมื่อคุณต้องการดาวน์โหลดไฟล์จากเซิร์ฟเวอร์ที่ใช้โปรโตคอลที่ wget ไม่รองรับ


2
ที่จริงแล้วwgetยังติดตามการเปลี่ยนเส้นทางแล้วบันทึกการตอบสนองที่ไม่เหมือนcurlกัน ทั้งคู่สามารถบรรลุสิ่งตรงกันข้ามกับพฤติกรรมเริ่มต้นwget -qO - http://google.co.uk/ หรือcurl http://google.co.uk/ > index.html
แมตต์

1
@mtm curl http://google.co.uk/ > index.htmlไม่ได้ใช้ฟังก์ชั่น inbuilt อย่างไรก็ตามความแตกต่างที่สำคัญคือจุดประสงค์ที่แต่ละเครื่องมือสร้างขึ้นมา ไม่มีการปฏิเสธว่าเครื่องมือวิวัฒนาการและหลายครั้งเบี่ยงเบนไปจากวิถีเริ่มต้นของพวกเขา
Pithikos

1
@mtm curl http://google.co.uk -o index.htmlจะใช้ internals >ขดแทนการเปลี่ยนเส้นทางการส่งออกที่มีเปลือก
Petrus Repo

19

จริงๆแล้วความแตกต่างที่สำคัญคือcurlมีlibcurlไลบรารี่ ( ) และไลบรารี่นั้นถูกใช้อย่างกว้างขวางโดยแอพพลิเคชั่นอื่น ๆ wgetเป็นแบบสแตนด์อโลน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.