ความแตกต่างระหว่าง wget กับ curl คืออะไร?

What Is Difference Between Wget Vs Curl



เรามักจะต้องดาวน์โหลดไฟล์จากเซิร์ฟเวอร์ระยะไกลไปยังเครื่องของเรา บนเดสก์ท็อปแบบกราฟิก เราสามารถใช้เบราว์เซอร์ GUI และคลิกปุ่มดาวน์โหลด อย่างไรก็ตาม บนเทอร์มินัล เราจำเป็นต้องใช้เครื่องมือที่พัฒนาขึ้นสำหรับเทอร์มินัล เมื่อดาวน์โหลดไฟล์จากเทอร์มินัล เครื่องมือสี่อย่างมักจะปรากฏขึ้น: curl , ไหล่ , wget , และ aria2 . แม้ว่า axel และ aria2 อาจไม่เป็นที่รู้จักมากนัก แต่ผู้ใช้เทอร์มินัลส่วนใหญ่รู้จัก curl และ wget

ในบทช่วยสอนนี้ เราจะดู curl และ wget วิธีเริ่มต้นใช้งาน และที่สำคัญที่สุดคือความแตกต่างระหว่างทั้งสอง







cURL คืออะไร?

cURL เป็นยูทิลิตีบรรทัดคำสั่งแบบโอเพ่นซอร์สฟรีที่ช่วยให้ผู้ใช้สามารถถ่ายโอนข้อมูลจากเครื่องระยะไกลเครื่องหนึ่งไปยังอีกเครื่องหนึ่งโดยมีการโต้ตอบกับผู้ใช้น้อยที่สุดหรือไม่มีเลย การใช้ CURL เป็นที่แพร่หลายในอุปกรณ์ต่างๆ เช่น เราเตอร์ เครื่องพิมพ์ โทรศัพท์ แท็บเล็ต เครื่องเล่นสื่อ และอื่นๆ



รองรับการดาวน์โหลดและอัปโหลดโดยใช้โปรโตคอล เช่น HTTP/HTTPS, FTP, SFTP, SCP, IMAP, LDAP/LDAPS, SMB/SMBS, TELNET, POP3, GOPHER และอื่นๆ อีกมากมาย



cURL ยังมีพร็อกซี่ การโอนต่อ การตรวจสอบผู้ใช้ ใบรับรอง SSL และอื่นๆ อีกมากมาย





wget คืออะไร?

GNU Wget หรือที่เรียกกันทั่วไปว่า wget เป็นยูทิลิตี้บรรทัดคำสั่งฟรีสำหรับการถ่ายโอนไฟล์โดยใช้ HTTP/HTTPS, FTP และ FTPS โดยมีคุณสมบัติต่างๆ เช่น การดาวน์โหลดแบบเรียกซ้ำ การควบคุมแบนด์วิดท์ การยกเลิกการถ่ายโอนต่อ การดาวน์โหลดในพื้นหลัง ไฟล์มิเรอร์แบบเรียกซ้ำและไดเรกทอรี และอื่นๆ อีกมากมาย

จะติดตั้ง cURL และ Wget ได้อย่างไร?

cURL และ wget เป็นเครื่องมือยอดนิยมที่มีอยู่ในลีนุกซ์รุ่นหลักๆ หากคุณไม่ได้ติดตั้งเครื่องมือใดๆ คุณสามารถใช้คำสั่งด้านล่างเพื่อติดตั้ง:



เดเบียน/อูบุนตู:

# ติดตั้ง cURL

sudo apt-get installcurl

# ติดตั้ง wget

sudo apt-get install wget

ซุ้มประตู / มันจาโร:

# ติดตั้ง cURL

sudopacman-NScurl

# ติดตั้ง wget

sudopacman-NS wget

REHL/CentOS/Fedora:

# ติดตั้ง cURL

sudo ยำติดตั้งcurl

sudodnfติดตั้งcurl

# ติดตั้ง wget

sudo ยำติดตั้ง wget

sudodnfติดตั้ง wget

วิธีใช้ cURL และ Wget (ตัวอย่างกรณีการใช้งาน)

เพื่อให้แน่ใจว่าคุณเข้าใจความเหมือนและความแตกต่างระหว่าง cURL และ wget คุณควรดูตัวอย่างบางส่วน:

โปรโตคอล HTTP/HTTPS:

ทั้ง cURL และ wget รองรับโปรโตคอล HTTP และ HTTPS ดังนั้น หากเราดาวน์โหลดเว็บไซต์ เช่น linuxhint.com:

ขด https://linuxhint.com-หรือlinuxhint.html

ขด https://linuxhint.com-หรือlinuxhint.html

%รวม%ได้รับ%Xferd เวลาความเร็วเฉลี่ย เวลา เวลาปัจจุบัน

Dload อัพโหลดความเร็วที่เหลือทั้งหมดที่ใช้ไป

100256k0256k0 0166k0-: -: -0:00:01 --:--:-- 166k

ตามค่าเริ่มต้น cURL จะพิมพ์เนื้อหาของทรัพยากรบนเว็บในเทอร์มินัล เราใช้แฟล็ก -o เพื่อเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์

สิ่งต่อไปนี้ใช้กับ wget:

wgethttps://linuxhint.com

---2021-06-2005:09:สี่ห้า- https://linuxhint.com/

กำลังแก้ไข linuxhint.com(linuxhint.com)... 104.21.58.234, 172.67.209.252,2606:4700:3033::6815:3aea, ...

กำลังเชื่อมต่อกับ linuxhint.com(linuxhint.com)|104.21.58.234|:443...เชื่อมต่อ

ส่งคำขอ HTTP แล้ว กำลังรอการตอบกลับ...200ตกลง

ความยาว: unspecified[ข้อความ/html]

บันทึกไปที่: 'index.html'

index.html

[ <=> ]256.25K 506KB/NSใน0.5s

ปี 2564-06-ยี่สิบ05:09:46 (506KB/NS)- บันทึก 'index.html' แล้ว[262396]

ในทางกลับกัน Wget จะบันทึกทรัพยากรที่ร้องขอไปยังไฟล์

เป็นการดีที่จะทราบว่าเครื่องมือทั้งสองดาวน์โหลดทรัพยากร รายละเอียด ls ของทั้งสองไฟล์แสดงทั้งสองขนาดไฟล์

$ลส -NSindex.html linuxhint.html

-rw-rw-r-- 1linuxhint ลินุกซ์ชิน262396จุน19 สิบห้า:ห้าสิบindex.html

-rw-rw-r-- 1linuxhint ลินุกซ์ชิน262396จุนยี่สิบ05:07 linuxhint.html

โปรโตคอล FTP:

ทั้ง cURL และ wget รองรับการดาวน์โหลดบนโปรโตคอล FTP อย่างไรก็ตาม cURL รองรับการอัปโหลดไปยัง ftp

ใช้คำสั่งด้านล่างเพื่อดาวน์โหลดไฟล์จากเซิร์ฟเวอร์ FTP ด้วย wget:

wget --ผู้ใช้= เดเบียน--รหัสผ่าน='เดเบียน' ftp://192.168.0.112/backup.zst

wget --ผู้ใช้= เดเบียน--รหัสผ่าน='เดเบียน'ftp://192.168.0.112/backup.zst

---2021-06-2005:29: 06-- ftp://192.168.0.112/backup.zst

=>'backup.zst'

กำลังเชื่อมต่อกับ 192.168.0.112:ยี่สิบเอ็ด...เชื่อมต่อ

การบันทึกใน เช่นเดเบียน ... เข้าสู่ระบบใน!

==>ระบบ ... เสร็จแล้ว ==>ป.ป.ช....เรียบร้อยแล้ว

==>TYPE I ... เสร็จแล้ว ==>ไม่จำเป็นต้องใช้ CWD

==>SIZE backup.zst ... เสร็จแล้ว

==>PASV ... เสร็จแล้ว ==>RETR backup.zst ... เสร็จแล้ว

backup.zst

[ <=> ] 0--.- KB/NSใน0s

ปี 2564-06-ยี่สิบ05:29: 06(0.00NS/NS)- 'backup.zst' บันทึกแล้ว[0]

ใช้ curl เติม-ยูตั้งค่าสถานะเป็น:

curl-ยูเดเบียน:เดเบียน 'ftp://192.168.0.112/backup.zst'-หรือbackup.zst

curl-ยูเดเบียน: เดเบียน'ftp://192.168.0.112/backup.zst' -หรือbackup.zst

%รวม%ได้รับ%Xferd เวลาความเร็วเฉลี่ย เวลา เวลาปัจจุบัน

Dload อัพโหลดความเร็วที่เหลือทั้งหมดที่ใช้ไป

0 0 0 0 0 0 0 0-: -: - -: -: - -: -: -0

ในการอัปโหลดไฟล์ถึงftpด้วย curl เราใช้ the-NSตัวเลือกเป็น:

curl-ยูเดเบียน: เดเบียน-NSbackup1.zst ftp://192.168.0.112/ftp/

ตรวจสอบให้แน่ใจว่าไดเร็กทอรีมีอยู่และผู้ใช้มีสิทธิ์ในการเขียน

บันทึก: แม้ว่า cURL จะรองรับโปรโตคอลที่หลากหลาย แต่ก็ไม่ได้ให้การดาวน์โหลดแบบเรียกซ้ำ ในทางกลับกัน Wget รองรับการดาวน์โหลดแบบเรียกซ้ำโดยใช้ตัวเลือก –recursive เนื่องจากทั้งโปรโตคอล HTTP/HTTPS และ FTP/FTPS มีฟังก์ชันดังกล่าว

ความคล้ายคลึงกันระหว่าง wget และ cURL

ตอนนี้สำหรับไอซิ่งบนเค้ก:

  • เครื่องมือทั้งสองรองรับโปรโตคอลมาตรฐาน เช่น HTTP, HTTPS, FTP, FTPS
  • เครื่องมือทั้งสองดาวน์โหลดไฟล์จากอินเทอร์เน็ต
  • เครื่องมือทั้งสองรองรับคุกกี้ HTTP
  • เครื่องมือทั้งสองรองรับเอาต์พุตไปยังไฟล์
  • ทั้งเครื่องมือฟรีและได้รับการพัฒนาอย่างแข็งขัน
  • เครื่องมือทั้งสองรองรับการถ่ายโอนประวัติย่อ
  • เครื่องมือทั้งสองรองรับ HTTP POST

ความแตกต่างระหว่าง wget และ cURL

นี่คือความแตกต่างบางประการระหว่าง curl และ wget:

  • Wget เป็นยูทิลิตี้การถ่ายโอนที่เรียบง่าย ในขณะที่ curl นำเสนออะไรอีกมากมาย
  • Curl มีไลบรารี libcurl ซึ่งสามารถขยายเป็นแอปพลิเคชัน GUI ได้ ในทางกลับกัน Wget เป็นยูทิลิตี้บรรทัดคำสั่งอย่างง่าย
  • Wget รองรับโปรโตคอลน้อยกว่าเมื่อเปรียบเทียบกับ cURL
  • ไม่รองรับการดาวน์โหลดแบบเรียกซ้ำใน curl
  • Wget พร้อมใช้งานในระบบ Linux ในขณะที่ cURL พร้อมใช้งานในระบบ Windows
  • cURL รองรับการถ่ายโอนแบบขนานหลายรายการ
  • cURL ดำเนินการคลายการบีบอัด HTTP ที่เข้ารหัสการถ่ายโอน ในขณะที่ wget ไม่ทำ
  • cURL รองรับ HTTP แบบสองทิศทางในขณะที่ wget เสนอ HTTP POST ธรรมดา
  • cURL รองรับวิธีการตรวจสอบสิทธิ์ HTTP มากกว่าเมื่อเปรียบเทียบกับ wget
  • Wget ไม่รองรับ SOCKS
  • Wget ต้องติดตั้ง gnulib
  • ต่างจาก curl ตรงที่คุณสมบัติต่างๆ เช่น คุกกี้ การประทับเวลา และการติดตามการเปลี่ยนเส้นทางถูกเปิดใช้งานโดยค่าเริ่มต้นใน wget cURL กำหนดให้ต้องระบุอย่างชัดเจน

บทสรุป

บทช่วยสอนนี้เน้นที่ความเหมือนและความแตกต่างระหว่าง cURL แม้ว่าอาจดูเหมือน cURL เป็นตัวเลือกที่ดีกว่า แต่ก็มีบางกรณีที่ wget เป็นตัวเลือกที่ดีที่สุด

คำแนะนำของฉันคือการเลือกสิ่งที่เหมาะกับคุณ