cURL مقابل wget في Linux: ما الفرق؟

نشرت: 2022-07-13
كمبيوتر محمول Linux يعرض موجه bash
fatmawati achmad zaenuri / Shutterstock.com

إذا سألت مجموعة من مستخدمي Linux عما يقومون بتنزيل الملفات به ، فسيقول البعض wget والبعض الآخر سيقول cURL . ما الفرق وهل أحدهما أفضل من الآخر؟

بدأت مع الاتصال

بدأ الباحثون الحكوميون في ربط الشبكات المختلفة ببعضها البعض منذ ستينيات القرن الماضي ، مما أدى إلى ظهور أعمال شبكية مترابطة . لكن ولادة الإنترنت كما نعرفها جاءت في الأول من كانون الثاني (يناير) 1983 عندما تم تنفيذ بروتوكول TCP / IP. كان هذا هو الحلقة المفقودة. سمح لأجهزة الكمبيوتر والشبكات المختلفة بالتواصل باستخدام معيار مشترك.

في عام 1991 ، أصدرت CERN برنامج شبكة الويب العالمية الخاص بها والذي كانوا يستخدمونه داخليًا لبضع سنوات. كان الاهتمام بهذا التراكب المرئي للإنترنت فوريًا وواسع الانتشار. بحلول نهاية عام 1994 ، كان هناك 10000 خادم ويب و 10 ملايين مستخدم.

كيف يعمل الإنترنت؟
ذات صلة كيف يعمل الإنترنت؟

يمثل هذان المعلمان - الإنترنت والويب - وجهين مختلفين تمامًا للاتصال. لكنهم يتشاركون في الكثير من الوظائف نفسها أيضًا.

الاتصال يعني ذلك بالضبط. أنت تتصل ببعض الأجهزة البعيدة ، مثل الخادم. وأنت تتصل به لأن هناك شيئًا ما تحتاجه أو تريده. ولكن كيف يمكنك استرداد هذا المورد المستضاف عن بُعد إلى جهاز الكمبيوتر المحلي الخاص بك ، من سطر أوامر Linux؟

في عام 1996 ، تم إنشاء اثنين من المرافق التي تسمح لك بتنزيل الموارد المستضافة عن بُعد. هم wget ، الذي تم إصداره في يناير ، و cURL الذي تم إصداره في ديسمبر. كلاهما يعمل على سطر أوامر Linux. كلاهما يتصل بالخوادم البعيدة ، وكلاهما يسترد الأشياء لك.

لكن هذه ليست الحالة المعتادة لنظام Linux الذي يوفر أداتين أو أكثر للقيام بنفس المهمة. هذه المرافق لها أغراض مختلفة وتخصصات مختلفة. تكمن المشكلة في أنها متشابهة بدرجة كافية لإحداث ارتباك حول أي منها يجب استخدامه ومتى.

ضع في اعتبارك جراحين. ربما لا تريد أن يقوم جراح العيون بإجراء جراحة المجازة القلبية ، ولا تريد أن يقوم جراح القلب بعملية الساد. نعم ، كلاهما من المهنيين الطبيين ذوي المهارات العالية ، لكن هذا لا يعني أنهما بديلان عن بعضهما البعض.

وينطبق الشيء نفسه على wget و cURL .

أغراض مختلفة ، سمات مختلفة ، بعض التداخل

يعد "w" في الأمر wget مؤشرًا على الغرض المقصود منه. والغرض الأساسي منه هو تنزيل صفحات الويب - أو حتى مواقع الويب بأكملها. man صفحتها الرئيسية على أنها أداة مساعدة لتنزيل الملفات من الويب باستخدام بروتوكولات HTTP و HTTPS و FTP.

على النقيض من ذلك ، يعمل cURL مع 26 بروتوكولًا ، بما في ذلك SCP و SFTP و SMSB بالإضافة إلى HTTPS. تقول صفحتها الرئيسية إنها أداة لنقل البيانات man وإلى الخادم. لم يتم تصميمه للعمل مع مواقع الويب ، على وجه التحديد. الغرض منه هو التفاعل مع الخوادم البعيدة ، باستخدام أي من بروتوكولات الإنترنت العديدة التي يدعمها.

لذا ، فإن wget تتمحور في الغالب حول موقع الويب ، بينما cURL هو شيء يعمل على مستوى أعمق ، أسفل مستوى الإنترنت العادي.

يستطيع wget استرداد صفحات الويب ، ويمكنه التنقل بشكل متكرر في هياكل الدليل بالكامل على خوادم الويب لتنزيل مواقع الويب بالكامل. إنه قادر أيضًا على ضبط الروابط في الصفحات المستردة بحيث تشير بشكل صحيح إلى صفحات الويب على جهاز الكمبيوتر المحلي الخاص بك ، وليس إلى نظيراتها على خادم الويب البعيد.

يتيح لك cURL التفاعل مع الخادم البعيد. يمكنه تحميل الملفات وكذلك استرجاعها. يعمل cURL مع بروكسيات SOCKS4 و SOCKS5 و HTTPS إلى الوكيل. وهو يدعم فك الضغط التلقائي للملفات المضغوطة بتنسيقات GZIP و BROTLI و ZSTD. يتيح لك cURL أيضًا تنزيل عمليات نقل متعددة بشكل متوازٍ.

التداخل بينهما هو أن كل من wget و cURL لك استرداد صفحات الويب واستخدام خوادم FTP.

إنه مقياس تقريبي فقط ، ولكن يمكنك الحصول على بعض التقدير لمجموعات الميزات النسبية man من خلال النظر إلى طول صفحات الدليل الخاصة بهم. على جهاز الاختبار الخاص بنا ، يبلغ طول صفحة الدليل الخاصة بـ wget 1433 سطرًا. صفحة man لـ cURL عبارة عن 5296 سطرًا ضخمًا.

نظرة خاطفة سريعة على wget

نظرًا لأن wget جزء من مشروع GNU ، يجب أن تجده مثبتًا مسبقًا على جميع توزيعات Linux. يعد استخدامه أمرًا بسيطًا ، خاصة للاستخدامات الأكثر شيوعًا: تنزيل صفحات الويب أو الملفات.

ما عليك سوى استخدام الأمر wget مع عنوان URL لصفحة الويب أو الملف البعيد.

 wget https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc 

تنزيل مستند Word باستخدام wget

يتم استرداد الملف وحفظه على جهاز الكمبيوتر الخاص بك باسمه الأصلي.

الإخراج من الأمر wget لتنزيل مستند Word

لحفظ الملف باسم جديد ، استخدم الخيار -O (مستند الإخراج).

 wget -O word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc 

تنزيل ملف باستخدام wget وحفظه باسم جديد

يتم حفظ الملف المسترجع بالاسم الذي اخترناه.

تتم إعادة تسمية الملف الذي تم تنزيله إلى الاسم المتوفر في سطر الأوامر

لا تستخدم الخيار -O عند استرداد مواقع الويب. إذا قمت بذلك ، فسيتم إلحاق جميع الملفات المستردة في ملف واحد.

لاسترداد موقع ويب بأكمله ، استخدم الخيار -m (مرآة) وعنوان URL للصفحة الرئيسية للموقع. ستحتاج أيضًا إلى استخدام --page-requisites للتأكد من تنزيل جميع الملفات الداعمة المطلوبة لعرض صفحات الويب بشكل صحيح أيضًا. يعمل الخيار --convert-links ضبط الروابط في الملف المسترجع للإشارة إلى الوجهات الصحيحة على جهاز الكمبيوتر المحلي لديك بدلاً من المواقع الخارجية على موقع الويب.

ذات صلة: كيفية استخدام wget ، أداة تنزيل سطر الأوامر Ultimate Command Line

نظرة خاطفة سريعة على cURL

cURL هو مشروع مستقل مفتوح المصدر. تم تثبيته مسبقًا على Manjaro 21 و Fedora 36 ولكن كان يجب تثبيته على Ubuntu 21.04.

هذا هو الأمر لتثبيت cURL على Ubuntu.

 sudo apt تثبيت حليقة 

تثبيت cURL على أوبونتو

لتنزيل نفس الملف كما فعلنا مع wget ، ولحفظه بنفس الاسم ، نحتاج إلى استخدام هذا الأمر. لاحظ أن الخيار -o (الإخراج) يكون بأحرف صغيرة مع cURL .

 curl -o word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc 

تنزيل ملف باستخدام cURL وحفظه باسم جديد

يتم تنزيل الملف لنا. يتم عرض شريط تقدم ASCII أثناء التنزيل.

يتم تنزيل الملف وحفظه بالاسم المحدد في سطر الأوامر

للاتصال بخادم FTP وتنزيل ملف ، استخدم الخيار -u (المستخدم) وقم بتوفير اسم مستخدم وكلمة مرور زوج ، مثل هذا:

 curl -o test.png -u demo: password ftp://test.rebex.net/pub/example/KeyGenerator.png 

تنزيل ملف من خادم FTP باستخدام cURL

يؤدي هذا إلى تنزيل ملف وإعادة تسميته من خادم FTP اختباري.

تنزيل ناجح من خادم FTP باستخدام cURL

ذات صلة: كيفية استخدام curl لتنزيل الملفات من سطر أوامر Linux

لا يوجد أفضل

من المستحيل الإجابة على "أيهما يجب أن أستخدمه" دون أن تسأل "ماذا تحاول أن تفعل؟"

بمجرد أن تفهم ما يفعله wget و cURL ، ستدرك أنهما ليسا في منافسة. إنهم لا يستوفون نفس المتطلبات ولا يحاولون توفير الوظيفة نفسها.

تنزيل صفحات الويب والمواقع هو المكان الذي يكمن فيه تفوق wget . إذا كان هذا ما تفعله ، فاستخدم wget . لأي شيء آخر - تحميل ، على سبيل المثال ، أو استخدام أي من العديد من البروتوكولات الأخرى - استخدم cURL .