cURL مقابل wget في Linux: ما الفرق؟
نشرت: 2022-07-13 إذا سألت مجموعة من مستخدمي 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
يتم استرداد الملف وحفظه على جهاز الكمبيوتر الخاص بك باسمه الأصلي.
لحفظ الملف باسم جديد ، استخدم الخيار -O
(مستند الإخراج).
wget -O word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc
يتم حفظ الملف المسترجع بالاسم الذي اخترناه.
لا تستخدم الخيار -O
عند استرداد مواقع الويب. إذا قمت بذلك ، فسيتم إلحاق جميع الملفات المستردة في ملف واحد.
لاسترداد موقع ويب بأكمله ، استخدم الخيار -m
(مرآة) وعنوان URL للصفحة الرئيسية للموقع. ستحتاج أيضًا إلى استخدام --page-requisites
للتأكد من تنزيل جميع الملفات الداعمة المطلوبة لعرض صفحات الويب بشكل صحيح أيضًا. يعمل الخيار --convert-links
ضبط الروابط في الملف المسترجع للإشارة إلى الوجهات الصحيحة على جهاز الكمبيوتر المحلي لديك بدلاً من المواقع الخارجية على موقع الويب.
ذات صلة: كيفية استخدام wget ، أداة تنزيل سطر الأوامر Ultimate Command Line
نظرة خاطفة سريعة على cURL
cURL
هو مشروع مستقل مفتوح المصدر. تم تثبيته مسبقًا على Manjaro 21 و Fedora 36 ولكن كان يجب تثبيته على Ubuntu 21.04.
هذا هو الأمر لتثبيت cURL على Ubuntu.
sudo apt تثبيت حليقة
لتنزيل نفس الملف كما فعلنا مع wget
، ولحفظه بنفس الاسم ، نحتاج إلى استخدام هذا الأمر. لاحظ أن الخيار -o
(الإخراج) يكون بأحرف صغيرة مع cURL
.
curl -o word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc
يتم تنزيل الملف لنا. يتم عرض شريط تقدم ASCII أثناء التنزيل.
للاتصال بخادم FTP وتنزيل ملف ، استخدم الخيار -u
(المستخدم) وقم بتوفير اسم مستخدم وكلمة مرور زوج ، مثل هذا:
curl -o test.png -u demo: password ftp://test.rebex.net/pub/example/KeyGenerator.png
يؤدي هذا إلى تنزيل ملف وإعادة تسميته من خادم FTP اختباري.
ذات صلة: كيفية استخدام curl لتنزيل الملفات من سطر أوامر Linux
لا يوجد أفضل
من المستحيل الإجابة على "أيهما يجب أن أستخدمه" دون أن تسأل "ماذا تحاول أن تفعل؟"
بمجرد أن تفهم ما يفعله wget
و cURL
، ستدرك أنهما ليسا في منافسة. إنهم لا يستوفون نفس المتطلبات ولا يحاولون توفير الوظيفة نفسها.
تنزيل صفحات الويب والمواقع هو المكان الذي يكمن فيه تفوق wget
. إذا كان هذا ما تفعله ، فاستخدم wget
. لأي شيء آخر - تحميل ، على سبيل المثال ، أو استخدام أي من العديد من البروتوكولات الأخرى - استخدم cURL
.