دليل cURL للرجوع إليه быстро

أوامر cUrl المفيدة مع المعلمات

هناك دليل مختصر للحصول على أفضل أوامر cURL مع معلماتها:

شخص مع علامة curl

الصورة أعلاه مُنشَّأة بواسطة Flux - نموذج الذكاء الاصطناعي لتحويل النص إلى صورة.

استخدام cURL الأساسي

  • تنزيل ملف: curl http://example.com/file.zip -o file.zip
  • تنزيل عدة ملفات: curl -O URL1 -O URL2
  • متابعة التوجيهات: curl -L http://example.com/file
  • عرض الرؤوس فقط: curl -I http://example.com

المصادقة

  • المصادقة الأساسية: curl -u username:password http://example.com
  • استخدام ملف .netrc: curl --netrc-file .netrc http://example.com

طرق HTTP

  • طلب POST: curl -X POST -d 'name=value' http://example.com
  • طلب PUT: curl -X PUT -d @file http://example.com
  • طريقة مخصصة: curl -X METHOD http://example.com

الرؤوس والبيانات

  • إضافة رأس مخصص: curl -H "X-Header: Value" http://example.com
  • إرسال بيانات JSON: curl -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com
  • إرسال بيانات نموذج: curl -F "key=value" -F "file=@localfile" http://example.com

خيارات SSL/TLS

  • تجاهل التحقق من شهادة SSL: curl -k https://example.com
  • استخدام شهادة العميل: curl --cert cert.pem --key key.pem https://example.com

الوسيط والشبكة

  • استخدام وسيط: curl -x proxysever.server.com:PORT http://example.com
  • تقييد معدل التنزيل: curl --limit-rate 1000B -O http://example.com/file

تحكم في الإخراج

  • الوضع الصامت: curl -s http://example.com
  • الوضع المفصل: curl -v http://example.com
  • كتابة الإخراج إلى ملف: curl -o file.html http://example.com
  • حفظ باسم الملف البعيد: curl -O http://example.com/file.zip

متنوع

  • استئناف تنزيل فاشل: curl -C - -o partial_file.zip http://example.com/file.zip
  • تحديد مهلة: curl --connect-timeout 10 http://example.com
  • استخدام ملف إعدادات: curl -K config_file http://example.com

يغطي هذا الدليل أبرز أوامر cURL المستخدمة ومعلماتها، مما يوفر مرجعاً سريعاً لعمليات HTTP المختلفة ونقل البيانات.

أوامر cURL المتقدمة

هنا بعض الأوامر المتقدمة لـ curl للاستخدام في التصحيح:

  1. الإخراج المفصل: curl -v https://example.com هذه الأوامر توفر معلومات تفصيلية عن الطلب والاستجابة، بما في ذلك الرؤوس والتفاصيل المتعلقة بالاتصال.

  2. ملخص كامل للتدوين: curl --trace - https://example.com هذه الأوامر تُخرج تدويناً سداسيًا لجميع البيانات الداخلة والخارجة، مما يوفر رؤية شاملة لجميع الاتصالات.

  3. ملخص مع تواريخ: curl --trace - --trace-time https://example.com هذه الأوامر تضيف تواريخ إلى ملخص التتبع، مما يساعد في تحليل المشكلات المتعلقة بالوقت.

  4. عرض رؤوس الاستجابة فقط: curl -s -o /dev/null -D - https://example.com هذه الأوامر تُظهر فقط رؤوس الاستجابة، مما يكون مفيداً لتحليل الرؤوس بسرعة.

  5. عرض رؤوس الطلب فقط: curl -v -s -o /dev/null --stderr - https://example.com | grep '^>' هذه الأوامر المعقدة تفلتر فقط رؤوس الطلب، مما يكون مفيداً لفحص ما يتم إرساله.

  6. استخدام مُصحِّح Pantheon: curl -I -H "Pantheon-Debug:1" https://example.com هذه الأوامر تستخدم رأس Debug الخاص بـ Pantheon للحصول على معلومات إضافية عن الطلب، وهو مفيد للمواقع المضمنة في Pantheon.

  7. إجبار بروتوكول HTTP/2: curl --http2 https://example.com هذه الأوامر تضمن استخدام بروتوكول HTTP/2، ويمكن دمجه مع -I لتأكيد دعم HTTP/2.

  8. التصحيح باستخدام netcat: في نافذة واحدة: nc -l 1234 في نافذة أخرى: curl http://127.0.0.1:1234 هذه الأوامر تسمح لك برؤية ما يرسله curl بدقة، وهو مفيد لتصحيح حمولة البيانات.

تمنح هذه الأوامر المتقدمة قدرات تصحيح قوية، مما يسمح للمطورين بمراجعة جوانب مختلفة من الاتصالات HTTP وحل المشكلات المعقدة.

استخدامات شائعة لـ cURL

cURL هو أداة قوية للسطر الأوامر مع تطبيقات عديدة. إليك بعض الاستخدامات الشائعة لـ cURL:

التفاعلات مع الويب

  1. تنزيل الملفات: يمكن لـ cURL تنزيل الملفات من العناوين.
  2. التنقيب في الويب: يمكن لـ cURL استرجاع محتوى صفحات الويب لغرض التنقيب.
  3. اختبار المواقع: يكون cURL مفيداً لفحص ما إذا كانت الموقع متاحة واسترجاع محتواها.

التفاعلات مع واجهات برمجة التطبيقات (API)

  1. إرسال طلبات API: يدعم cURL عدة طرق HTTP (GET، POST، PUT، DELETE) لتفاعل مع واجهات برمجة التطبيقات.
  2. اختبار نقاط نهاية API: يوفر cURL طريقة سريعة لاختبار وتصحيح نقاط نهاية API دون الحاجة إلى عميل API مخصص.

تصحيح الشبكة

  1. فحص الاتصال: يمكن استخدام cURL لفحص الاتصالات الشبكية وتصحيح المشكلات.
  2. اختبار DNS: يسمح cURL بفرض خوادم DNS محددة لتصحيح المشكلات المتعلقة بـ DNS.
  3. فحص الرؤوس: يمكن لـ cURL عرض رؤوس HTTP، وهو مفيد لتصحيح المشكلات.

نقل البيانات

  1. عمليات FTP: يدعم cURL نقل الملفات باستخدام بروتوكول نقل الملفات (FTP).
  2. تفاعلات SMTP: يمكن استخدام cURL لإرسال البريد الإلكتروني عبر بروتوكول نقل البريد البسيط (SMTP).

الأمان والمصادقة

  1. اتصالات SSL: يدعم cURL الاتصالات الآمنة باستخدام SSL/TLS.
  2. المصادقة: يمكن لـ cURL التعامل مع عدة طرق للمصادقة، بما في ذلك المصادقة الأساسية وشهادات العميل.

التطوير والتصحيح

  1. محاكاة طرق HTTP المختلفة: يسمح cURL للمطورين بفحص طرق HTTP المختلفة بسهولة.
  2. التسجيل المفصل: يوفر وضع cURL المفصل معلومات تفصيلية عن دورة الطلب والاستجابة، مما يساعد في التصحيح.

تُظهر هذه الاستخدامات المرونة التي يمتلكها cURL كأداة لتفاعلات الويب، واختبار واجهات برمجة التطبيقات، وتصحيح الشبكة، والمهام المتعلقة بالتطوير.

اختبار أداء الموقع باستخدام cURL

cURL هو أداة قوية لاختبار أداء الموقع. إليك كيفية استخدامه لقياس جوانب مختلفة من سرعة تحميل الموقع:

اختبار الأداء الأساسي

للحصول على قياس بسيط لوقت تحميل الموقع، استخدم هذا الأمر:

curl -o /dev/null -s -w "الوقت الكلي: %{time_total}s\n" "https://example.com"

سيقوم هذا الأمر بإخراج الوقت الكلي المطلوب لتحميل الموقع[2].

مؤشرات الأداء التفصيلية

لتحليل أكثر شمولًا، يمكنك استخدام cURL لقياس عدة مؤشرات أداء:

curl -s -w 'اختبار وقت استجابة الموقع لـ :%{url_effective}\n\nوقت البحث: %{time_namelookup}\nوقت الاتصال: %{time_connect}\nوقت قبل الاتصال: %{time_pretransfer}\nوقت بدء الاتصال: %{time_starttransfer}\n\nالوقت الكلي: %{time_total}\n' -o /dev/null https://example.com

يوفر هذا الأمر تحليلًا للجوانب المختلفة في عملية التحميل، بما في ذلك وقت البحث في DNS، وقت الاتصال، والوقت الكلي[1].

مؤشرات متقدمة

لتحليل أكثر تفصيلًا، يمكنك إضافة مؤشرات إضافية:

curl -o /dev/null -w "نسخة HTTP: %{http_version}\nحجم الصفحة: %{size_download} بايت\nكود الاستجابة: %{response_code}\nبحث DNS: %{time_namelookup} ثانية\nوقت الاتصال: %{time_connect} ثانية\nوقت أول بايت: %{time_starttransfer} ثانية\nالوقت الكلي: %{time_total} ثانية\n" -s https://example.com

يوفر هذا الأمر معلومات حول نسخة HTTP، حجم الصفحة، وكود الاستجابة[3].

اختبار متعدد للطلبات

للمحافظة على الاتساق أو مراقبة الأداء على مر الوقت، يمكنك استخدام حلقة لإجراء عدة طلبات:

for i in {1..5}; do curl -o /dev/null -s -w "الطلب $i الوقت الكلي: %{time_total}\n" https://example.com; done

سيقوم هذا الأمر بإجراء الاختبار خمس مرات ويعرض الوقت الكلي لكل طلب[3].

إنشاء نسخة مختصرة لاختبار الأداء

يمكنك إنشاء نسخة بسيطة من bash لتشغيل هذه الاختبارات تلقائيًا وحفظ النتائج:

#!/bin/bash
curl -s -w 'اختبار وقت استجابة الموقع لـ :%{url_effective}\n\nوقت البحث: %{time_namelookup}\nوقت الاتصال: %{time_connect}\nوقت قبل الاتصال: %{time_pretransfer}\nوقت بدء الاتصال: %{time_starttransfer}\n\nالوقت الكلي: %{time_total}\n' -o /dev/null URL > webspeedtest_"$(date)"

استبدل “URL” بالموقع الذي ترغب في اختباره. ستقوم هذه النسخة بحفظ النتائج في ملف مُسَمَّى حسب التاريخ[5].

من خلال استخدام هذه الأوامر ونصوص cURL، يمكنك قياس ورصد أداء الموقع بشكل فعال، مما يساعدك على تحديد العوائق المحتملة وتحسين وقت التحميل.