حليقة
cURL (يُنطق "curl" [ 6 ] / kɜːrl / ) هو برنامج حاسوبي مجاني ومفتوح المصدر لنقل البيانات من وإلى خوادم الإنترنت . يُمكنه تنزيل الموارد المُعرّفة بواسطة عناوين URL من خادم ويب عبر بروتوكول HTTP ، ويدعم مجموعة متنوعة من بروتوكولات الشبكة الأخرى ، وأنظمة URI ، وإصدارات متعددة من HTTP، وتقنية البروكسي . يتكون المشروع من مكتبة ( libcurl ) وأداة سطر أوامر ( curl )، وقد تم نقلهما على نطاق واسع إلى منصات حوسبة مختلفة . أنشأه دانيال ستينبرغ ، الذي لا يزال المطور الرئيسي للمشروع.
تاريخ
صدر البرنامج لأول مرة عام ١٩٩٦، [ ٧ ] وكان اسمه الأصلي httpget، ثم أصبح urlget، قبل أن يعتمد اسمه الحالي curl. [ ٨ ] [ ٩ ] ويرمز الاسم إلى "العميل وعنوان URL ". [ ١٠ ] المؤلف الأصلي والمطور الرئيسي هو المطور السويدي دانيال ستينبيرغ ، الذي ابتكر curl لتشغيل جزء من روبوت IRC ، لأنه أراد توفير أسعار صرف العملات تلقائيًا، والتي يتم جلبها من موقع ويب، للمستخدمين في غرفة دردشة IRC . [ ٢ ]
عناصر
libcurl
libcurlهي مكتبة لنقل عناوين URL من جانب العميل تعمل على تشغيل curl. [ 11 ] وهي تدعم العديد من بروتوكولات الإنترنت بما في ذلك DICT و FILE و FTP و FTPS و GOPHER و GOPHERS و HTTP و HTTPS و IMAP و IMAPS و LDAP و LDAPS و MQTT و POP3 و POP3S و RTMP و RTMPS و RTSP و SCP و SFTP و SMB و SMBS و SMTP و SMTPS و TELNET و TFTP و WS و WSS .
يدعم libcurl إصدارات HTTP 0.9 و 1.0 و 1.1 و HTTP/2 و HTTP/3 بما في ذلك h2c و prior-knowledge و dual-connect modes و QUIC مع مصافحات 0-RTT.
توفر المكتبة ميزات مثل معالجة ملفات تعريف الارتباط ، وطرق طلب HTTP القياسية ( GET ، POST ، PUT ، HEAD ، تحميلات النماذج متعددة الأجزاء)، وآليات المصادقة بما في ذلك Basic، Digest، NTLM ، Negotiate، CRAM-MD5 ، SCRAM-SHA، Kerberos، رموز Bearer، AWS Sigv4، SASL ، وقراءة بيانات الاعتماد من .netrc.
libcurlيدعم مجموعة متنوعة من ميزات الأمان والنقل، بما في ذلك TLS 1.0 - 1.3 ، والمصادقة المتبادلة، و STARTTLS ، و OCSP stapling ، و Encrypted Client Hello ( ECH )، وFalse Start، وkey pinning، والاستعداد لما بعد الكم ، واستئناف الجلسة، والبيانات المبكرة، واستيراد/تصدير الجلسة، و HSTS ، وAlt-Svc، و Public Suffix List ( PSL )، وعلامات الكيانات ( ETags )، وطلبات النطاق، وضغط النقل ( gzip ، وBrotli ، وzstd )، والرؤوس المخصصة، والأساليب المخصصة، وتتبع إعادة التوجيه.
كما يوفر دعمًا للخوادم الوكيلة والشبكات، بما في ذلك SOCKS4 و SOCKS5 و HAProxy وخوادم HTTP الوكيلة مع خاصية الربط المتسلسل ومنافذ نطاقات Unix ، بالإضافة إلى مصادقة اسم المستخدم وكلمة المرور [ 12 ] . وتشمل ميزات تحليل أسماء النطاقات المتقدمة DNS عبر HTTPS ، وخوادم DNS مخصصة ، وتعيينات المضيف/المنفذ، وتخزين DNS المؤقت.
تتضمن الوظائف الإضافية استئناف نقل الملفات، والتحميل عبر بروتوكول نقل الملفات (FTP) ، والتحميل عبر بروتوكول HTTP باستخدام النماذج، وشهادات HTTPS ، وآليات للتحكم في عمليات النقل ومراقبتها، مثل مهلات زمنية قابلة للتكوين، وإعادة المحاولات التلقائية، وتحديد معدل النقل، واكتشاف الاتصالات المتوقفة. كما توفر المكتبة ميزات إعداد تقارير محسّنة، بما في ذلك بيانات وصفية بتنسيق JSON، ومعالجة حالة المحتوى، وعرض اسم مضيف IDN ، ومعلومات نقل قابلة للتخصيص.
المكتبة libcurlقابلة للنقل، حيث يتم بناؤها وتعمل بشكل متطابق على معظم المنصات، بما في ذلك: [ 13 ] [ 14 ] [ 15 ]
- نظام التشغيل AIX
- نظام التشغيل AmigaOS
- أندرويد
- نظام التشغيل Azure Sphere
- نظام التشغيل BeOS
- نظام تشغيل BlackBerry Tablet OS و BlackBerry 10 [ 16 ]
- السيزيوم
- داروين
- دوس
- ديوس
- فري بي إس دي
- فري روت
- HP-UX
- هيرد
- نظام التشغيل iOS
- IRIX
- لينكس
- نظام التشغيل macOS
- نظام التشغيل NetBSD
- نت وير
- أوبن بي إس دي
- أوبن هارموني ( نظام التشغيل هارموني )
- أوبن في إم إس
- نظام التشغيل OS/2
- كيو إن إكس
- نيوترينو QNX
- نظام التشغيل RISC
- RTEMS
- سولاريس
- كومبيان
- Tru64
- ألتريكس
- يونكس وير
- ويندوز
- VxWorks
- زفير
المكتبة آمنة libcurlللاستخدام المتزامن ومتوافقة مع بروتوكول IPv6 . تتوفر روابط لأكثر من 50 لغة ، بما في ذلك C و C++ و Java و Julia (مرفقة مع المكتبة) و PHP و Python . [ 17 ]
libcurlتدعم المكتبة بروتوكولات SSL/TLS من خلال GnuTLS و mbedTLS و SChannel (على نظام التشغيل Windows) و OpenSSL و BoringSSL و AWS-LC و QuicTLS و LibreSSL و AmiSSL و wolfSSL و rustls . [ 18 ]
حليقة
curlهي أداة سطر أوامر لجلب أو إرسال البيانات، بما في ذلك الملفات، باستخدام صيغة عنوان URL . curlتوفر واجهة للمكتبة libcurl؛ وهي تدعم كل بروتوكول libcurlيدعمه. [ 12 ]
curlيدعم بروتوكول HTTPS ، ويُجري التحقق من شهادات SSL أو TLS افتراضيًا. عند curlالاتصال بخادم بعيد عبر HTTPS، يحصل على شهادة الخادم البعيد، ثم يتحقق من صحة الخادم البعيد في مخزن شهادات المرجع المصدق (CA) للتأكد من أنه الخادم الذي يدّعي أنه هو. بعض curlالحزم تأتي مُرفقة بملف مخزن شهادات المرجع المصدق. هناك عدة خيارات لتحديد شهادة المرجع المصدق، مثل `----` --cacertو`---- --capath`. --cacertيُمكن استخدام الخيار `----` لتحديد موقع ملف مخزن شهادات المرجع المصدق.
ابتداءً من إصدار ويندوز 10 رقم 1809، يأتي نظام ويندوز مزودًا بـ [ 15 ]curl.exe . في نظام مايكروسوفت ويندوز، إذا لم يتم تحديد ملف شهادة المرجع المصدق، فسيبحث curl عن الملف في المواقع التالية، بالترتيب المذكور: [ 19 ].curl-ca-bundle.crt
- مجلد التطبيق (مكان
curl.exeوجوده) - دليل العمل الحالي
C:\Windows\System32دليلC:\Windowsدليل- الدلائل المحددة في
PATHمتغير البيئة
curlسيُظهر النظام رسالة خطأ إذا كان الخادم البعيد يستخدم شهادة موقعة ذاتيًا، أو إذا لم تكن شهادة الخادم البعيد موقعة من قِبل جهة مصدقة مدرجة في ملف شهادات الجهات المصدقة. ويمكن استخدام خيار -kآخر --insecureلتجاوز التحقق من الشهادة. بدلاً من ذلك، إذا كان الخادم البعيد موثوقًا به، فيمكن إضافة شهادة الجهة المصدقة الخاصة به إلى ملف مخزن شهادات الجهات المصدقة.
تجعيد صغير
tiny-curlهي نسخة خفيفة الوزن من مكتبة libcurl طورتها شركة wolfSSL Inc. للأجهزة المدمجة والأجهزة ذات الموارد المحدودة. وهي تُنفذ وظائف HTTPS في حوالي 100 كيلوبايت من التعليمات البرمجية على بنى 32 بت النموذجية.
الترخيص
يتم توزيع curl و libcurl بموجب ترخيص MIT . أما tiny-curl، وهو إصدار من curl مُحسَّن للأنظمة المدمجة ومدعوم من wolfSSL، فهو متاح بموجب كل من ترخيص GNU GPLv3 أو أحدث والترخيص التجاري.
يستخدم إصدار الدعم طويل الأمد (LTS) من برنامج curl الصلب للغاية، [ 20 ] نفس ترخيص curl بشكل افتراضي، مع خيار الترخيص التجاري للمؤسسات التي تتطلب دعمًا تعاقديًا أو تغطية الضمان.
انظر أيضاً
- curl-loader – أداة اختبار مفتوحة المصدر تعتمد على curl
- libwww – مكتبة مبكرة تأتي مع واجهة سطر أوامر
- باور شيل – كان لأمر iwr (Invoke-WebRequest) في ويندوز باور شيل وظائف مشابهة لـ curl؛ وكان من فئة عميل الويب أيضًا. [ 21 ]
- برنامج زحف الويب – روبوت إنترنت يمكنه زحف الويب
- Wget – أداة سطر أوامر مشابهة بدون مكتبة مرتبطة بها ولكنها قادرة على التنزيل المتكرر
مراجع
- ↑ ستينبرغ، دانيال (20 مارس 2015). "كيرل، يبلغ من العمر 17 عامًا اليوم" . daniel.haxx.se . تم الاطلاع عليه بتاريخ 20 مارس 2015 .
- ١ ٢ "تاريخ curl - كيف أصبح curl على هذا النحو" . curl. مؤرشف من الأصل في ٣٠ سبتمبر ٢٠١٧. تم الاسترجاع في ١٧ نوفمبر ٢٠١٦.
ببساطة، اعتمد دانيال أداة سطر أوامر مفتوحة المصدر موجودة، وهي httpget، التي كتبها البرازيلي رافائيل ساغولا وأصدر مؤخرًا الإصدار ٠.١ منها. بعد بعض التعديلات الطفيفة، قامت الأداة بما يحتاجه تمامًا. [...] تم إصدار HttpGet ١.٠ في ٨ أبريل ١٩٩٧ مع دعم جديد تمامًا لوكيل HTTP. [...] كان ستينبرغ يقضي وقته في كتابة روبوت IRC لقناة متعلقة بجهاز Amiga على شبكة EFnet. ثم خطرت له فكرة إتاحة حسابات صرف العملات لمستخدمي دردشة الإنترنت المرحلية (IRC).
- ↑ "الإصدار 8.21.0" . 24 يونيو 2026. تم الاطلاع عليه بتاريخ 24 يونيو 2026 .
- ↑ "رخصة curl" . spdx.org .
- 1 2 "curl – حقوق الطبع والنشر" . curl.se. مؤرشف من الأصل بتاريخ 15 يناير 2024. تم الاطلاع عليه بتاريخ 17 يناير 2024 .
- ↑ "curl - الأسئلة الشائعة" . curl.se .
- ↑ "تاريخ التجعيد" . fossies.org. مؤرشف من الأصل في 17 سبتمبر 2021. تم الاطلاع عليه في 11 مايو 2021 .
- ↑ "سجل التغييرات" . 4 يناير 2020. تم الاطلاع عليه في 4 يناير 2020. الإصدار الأول من curl .
كان اسم الأداة urlget قبل ذلك، وhttpget قبل ذلك.
- ↑ ستينبرغ، دانيال (4 يناير 2020). "استعادة سجل تغييرات curl بالكامل" (html) . Haxx Se . تم الاسترجاع في 2 يناير 2020 .
- ↑ ستينبرغ، دانيال. "أصل الاسم" . curl.se. تم الاسترجاع في 27-03-2021 .
- ↑ جونز، إم. تيم (8 سبتمبر 2009). "التواصل عبر الإنترنت باستخدام cURL وlibcurl - استخدام libcurl مع لغتي C وPython" . IBM Developerworks . مؤرشف من الأصل في 14 أبريل 2015. تم الاطلاع عليه في 12 سبتمبر 2018 .
- 1 2 "curl - كيفية الاستخدام" . curl.se .
- ↑ "برنامج Curl مفتوح المصدر من طرف ثالث" . Gitee . OpenAtom OpenHarmony . تم الاطلاع عليه بتاريخ 17 مارس 2024 .
- ↑ "برنامج Curl مفتوح المصدر من طرف ثالث" . GitHub . OpenAtom OpenHarmony . تم الاطلاع عليه بتاريخ 17 مارس 2024 .
- 1 2 تيرنر، ريتش (18 يناير 2018). "Tar وCurl يصلان إلى ويندوز!" . سطر أوامر ويندوز . مايكروسوفت .
- ↑ "مكونات مفتوحة المصدر لحزمة تطوير البرامج الأصلية لنظام تشغيل أجهزة بلاك بيري اللوحية" . مؤرشف من الأصل بتاريخ 27 يناير 2013. تم الاطلاع عليه بتاريخ 19 سبتمبر 2017 .
- ↑ "libcurl bindings" . curl.se.
- ↑ "curl يدعم rustls | daniel.haxx.se" . 9 فبراير 2021. تم الاطلاع عليه بتاريخ 1 يناير 2022 .
- ↑ "curl - شهادات SSL CA" . curl.se .
- ↑ "تجعيد قوي كالصخر" .
- ^ ديل ، رايان (2 مارس 2018). "Comandi يعادل cURL e Wget لكل سطر أوامر Windows مع Powershell" [ cURL وأوامر Wget المكافئة لسطر أوامر Windows مع Powershell ] (html) . رياديل (باللغة الإيطالية) . تم الاسترجاع في 4 يناير 2020 .
لمحاكاة طريقة أمر Linux cURL، يكفي إنشاء ملف cURL.ps1 يحتوي على الكود التالي الصحيح
روابط خارجية
- أوامر ويندوز
- برنامج عام 1997
- مكتبات لغة البرمجة C
- برامج سطر الأوامر
- برامج مجانية متعددة المنصات
- برامج إدارة التنزيلات
- عملاء FTP مجانيين
- برنامج مجاني مكتوب بلغة C
- برامج زحف الويب المجانية
- عملاء بروتوكول نقل النص التشعبي
- برنامج مرخص بموجب ترخيص MIT
- تيلنت
- استخراج البيانات من مواقع الويب
