إنشاء قائمة منسدلة في html. قوائم شجرة من الاختلافات المختلفة
اقرأ أيضا
يعد c URL أداة سطر أوامر مفيدة جدًا لنقل البيانات من الخادم أو إليه. يدعم Curl العديد من البروتوكولات مثل FILE وHTTP وHTTPS وIMAP وIMAPS وLDAP وDICT وLDAPS وTELNET وFTPS وGOPHER وRTMP وRTSP وSCP وSFTP وPOP3 وPOP3S وSMB وSMBS وSMTP وSMTPS وTFTP .
يمكن استخدام cURL بعدة طرق مختلفة ومثيرة للاهتمام. باستخدام هذه الأداة، يمكنك تنزيل الملفات وتحميلها وإدارتها والتحقق من عنوانك بريد إلكترونيأو حتى تحديث حالتك على بعض مواقع التواصل الاجتماعي أو التحقق من الطقس في الخارج. في هذه المقالة، سنلقي نظرة على الاستخدامات الخمسة الأساسية والأكثر فائدة لأداة cURL على أي تطبيق.
1. تحقق من عنوان URL
أحد الاستخدامات الأكثر شيوعًا والأبسط لـ cURL هو طباعة الأمر نفسه متبوعًا بعنوان URL الذي تريد اختباره
حليقة https://domain.ru
سيعرض هذا الأمر محتويات عنوان URL على جهازك الطرفي
2. احفظ مخرجات URL في ملف
موقع Curl -o https://domain.ru % الإجمالي % المستلم % Xferd متوسط السرعة الوقت الوقت الوقت الحالي Dload تحميل إجمالي السرعة اليسرى المستهلكة 100 41793 0 41793 0 0 275k 0 --:--:-- - -:-- :-- --:--:-- 2.9 م
في هذا المثال، سيتم حفظ الإخراج في ملف يسمى "موقع الويب" في دليل العمل الحالي.
3. تحميل الملفات باستخدام Curl
يمكنك تنزيل الملفات باستخدام Curl عن طريق إضافة الخيار -o إلى الأمر. يتم استخدامه لحفظ الملفات إلى الملقم المحليبنفس الأسماء الموجودة على الخادم البعيد
حليقة -O https://domain.ru/file.zip
في هذا المثال، سيتم تنزيل الأرشيف "file.zip" إلى دليل العمل الحالي.
يمكنك أيضًا تحميل ملف باسم مختلف عن طريق إضافة الخيار -o إلى cURL.
الضفيرة -o archive.zip https://domain.ru/file.zip
لذلك سيتم تنزيل الأرشيف "file.zip" وحفظه باسم "Archive.zip".
يمكن أيضًا استخدام cURL لتنزيل ملفات متعددة مرة واحدة، كما هو موضح في المثال أدناه
الضفيرة -O https://domain.ru/file.zip -O https://domain.com/file2.zip
يمكن أيضًا استخدام Curl لتحميل الملفات بشكل آمن عبر SSH باستخدام الأمر التالي
الضفيرة -u المستخدم sftp://server.domain.ru/path/to/file
يرجى ملاحظة أنه يجب عليك استخدام مسار كاملإلى الملف الذي تريد تحميله
4. احصل على المعلومات من رأس HTTP الخاص بموقع الويب
يمكنك بسهولة الحصول على معلومات رأس HTTP من أي موقع ويب عن طريق إضافة الخيار -I ('i') إلى cURL.
Curl -I http://domain.ru HTTP/1.1 200 OK التاريخ: الأحد، 16 أكتوبر 2016 الساعة 23:37:15 بتوقيت جرينتش الخادم: Apache/2.4.23 (Unix) X-Powered-By: PHP/5.6.24 Connection : إغلاق نوع المحتوى: نص/أتش تي أم أل؛ مجموعة الأحرف = UTF-8
5. الوصول إلى خادم بروتوكول نقل الملفات
للوصول إلى خادم FTP باستخدام Curl، تحتاج إلى استخدام الأمر التالي
الضفيرة ftp://ftp.domain.ru - اسم مستخدم المستخدم: كلمة المرور
سوف يتصل Curl بخادم FTP ويدرج جميع الملفات والأدلة في الدليل الرئيسي للمستخدم
يمكنك تنزيل الملف باستخدام FTP
حليقة ftp://ftp.domain.ru/file.zip - اسم مستخدم المستخدم: كلمة المرور
وتحميل الملف إلى خادم FTP
Curl -T file.zip ftp://ftp.domain.ru/ --اسم مستخدم المستخدم:كلمة المرور
يمكنك التحقق من صفحة Curl يدويًا لرؤية جميع خيارات cURL المتاحة ووظائفها
رجل حليقة
ملاحظة.إذا أعجبك هذا المنشور، يرجى مشاركته مع أصدقائك على في الشبكات الاجتماعيةباستخدام الأزرار أدناه أو ببساطة ترك تعليق. شكرًا لك.
تفترض هذه المقالة أنك تعرف أساسيات الشبكات وHTML.
تعد القدرة على كتابة النصوص أمرًا ضروريًا عند بناء سلعة ما نظام الكمبيوتر. تعد قابلية توسيع أنظمة Unix باستخدام نصوص shell والبرامج المختلفة التي تنفذ الأوامر الآلية أحد أسباب نجاحها الكبير.
أدى العدد المتزايد من التطبيقات التي تنتقل إلى الويب إلى زيادة شعبية موضوع البرامج النصية لـ HTTP. تتمثل المهام المهمة في هذا المجال في استرداد المعلومات تلقائيًا من الإنترنت، أو إرسال البيانات أو تنزيلها إلى خوادم الويب، وما إلى ذلك.
Curl هي أداة سطر أوامر تتيح لك القيام بأنواع مختلفة من معالجة URL وعمليات النقل. تركز هذه المقالة على إنشاء طلبات HTTP بسيطة. من المفترض أنك تعرف بالفعل مكان الكتابة
# حليقة - مساعدة
# حليقة - دليل
للحصول على معلومات حول الضفيرة.
Curl ليست أداة من شأنها أن تفعل كل شيء من أجلك. يقوم بإنشاء الطلبات واستقبال البيانات وإرسال البيانات. قد تحتاج إلى نوع من "الصمغ" لربط كل شيء معًا، ربما بعض لغات البرمجة النصية (مثل bash) أو بعض الاستدعاءات اليدوية.
1. بروتوكول HTTP
HTTP هو بروتوكول يستخدم عند تلقي البيانات من خوادم الويب. هذا بروتوكول بسيط للغاية مبني على TCP/IP. يسمح البروتوكول أيضًا بإرسال المعلومات إلى الخادم من العميل باستخدام عدة طرق، كما سيتم توضيحه لاحقًا.
HTTP عبارة عن سلاسل من نص ASCII يتم إرسالها من العميل إلى الخادم لطلب بعض الإجراءات. عند تلقي الطلب، يستجيب الخادم للعميل بعدة أسطر نصية للخدمة، ثم بالمحتوى الفعلي.
باستخدام المفتاح curl -v، يمكنك رؤية الأوامر التي يرسلها curl إلى الخادم، بالإضافة إلى النصوص المعلوماتية الأخرى. ربما يكون رمز التبديل -v هو الطريقة الوحيدة لتصحيح أو حتى فهم التفاعل بين الضفيرة وخادم الويب.
2. عنوان URL
يحدد تنسيق URL (محدد موقع الموارد) عنوان مورد معين على الإنترنت. ربما تعرف هذا، على سبيل المثال عناوين URL: http://curl.haxx.se أو https://yourbank.com.
3. احصل على صفحة (GET).
إن طلب HTTP الأبسط والأكثر شيوعًا هو الحصول على محتويات عنوان URL. يمكن أن يرتبط عنوان URL بصفحة ويب أو صورة أو ملف. يرسل العميل طلب GET إلى الخادم ويتلقى المستند المطلوب. إذا قمت بتشغيل الأمر
# حليقة http://curl.haxx.se
سوف تحصل على إخراج صفحة الويب إلى نافذتك الطرفية. مستند HTML الكامل الموجود في عنوان URL هذا.
تحتوي جميع استجابات HTTP على مجموعة من الرؤوس التي تكون مخفية عادةً. لمشاهدتها مع المستند نفسه، استخدم خيار الضفيرة -i. يمكنك أيضًا طلب الرؤوس فقط باستخدام المفتاح -I (والذي سيجبر الضفيرة على تقديم طلب الرأس).
4. الأشكال
النماذج هي الطريقة الأساسية لعرض موقع الويب كصفحة HTML تحتوي على حقول يقوم المستخدم بإدخال البيانات فيها ثم ينقر على الزر "موافق" أو "إرسال"، وبعد ذلك يتم إرسال البيانات إلى الخادم. يستخدم الخادم بعد ذلك البيانات المستلمة ويقرر ما يجب فعله بعد ذلك: البحث عن المعلومات في قاعدة البيانات، أو إظهار العنوان المُدخل على الخريطة، أو إضافة رسالة خطأ، أو استخدام المعلومات لمصادقة المستخدم. بالطبع، هناك بعض البرامج على جانب الخادم التي تتلقى بياناتك.
4.1 احصل على
يستخدم نموذج GET طريقة GET، على سبيل المثال كما يلي:
إذا قمت بفتح هذا الرمز في متصفحك، فسترى نموذجًا يحتوي على حقل نصي وزر مكتوب عليه "موافق". إذا قمت بإدخال "1905" ثم قمت بالنقر فوق "موافق"، فسيقوم المتصفح بإنشاء عنوان URL جديد سيتبعه. سيتم تمثيل عنوان URL كسلسلة تتكون من مسار عنوان URL السابق وسلسلة مثل "junk.cgi?birthyear=1905&press=OK".
على سبيل المثال، إذا كان النموذج موجودًا في "www.hotmail.com/when/birth.html"، فإن النقر فوق "موافق" سينقلك إلى عنوان URL "www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK" " .
غالبية محركات البحثالعمل بهذه الطريقة.
لجعل cur ينشئ طلب GET، ما عليك سوى إدخال ما تتوقعه من النموذج:
# حليقة "www.hotmail.com/when/junk.cgi?birthyear=1905&press=OK"
4.2 المشاركة
تؤدي طريقة GET إلى ظهور جميع المعلومات المدخلة في شريط العناوين في متصفحك. قد يكون هذا جيدًا عندما تحتاج إلى وضع إشارة مرجعية على صفحة ما، ولكنه يعد عيبًا واضحًا عند إدخال معلومات حساسة في حقول النموذج، أو عندما تكون كمية المعلومات المدخلة في الحقول كبيرة جدًا (مما يؤدي إلى عنوان URL غير قابل للقراءة).
يوفر بروتوكول HTTP طريقة POST. من خلاله، يرسل العميل البيانات بشكل منفصل عن عنوان URL وبالتالي لن تراها في شريط العناوين.
النموذج الذي يُنشئ طلب POST مشابه للنموذج السابق:
يمكن لـ Curl إنشاء طلب POST بنفس البيانات كما يلي:
# الضفيرة -d "birthyear=1905&press=%20OK%20" www.hotmail.com/when/junk.cgi
يستخدم طلب POST هذا "تطبيق نوع المحتوى/x-www-form-urlencoded"، وهو الأسلوب الأكثر استخدامًا.
يجب أن تكون البيانات التي ترسلها إلى الخادم مشفرة بشكل صحيح، ولن يقوم Curl بذلك نيابةً عنك. على سبيل المثال، إذا كنت تريد أن تحتوي البيانات على مسافة، فستحتاج إلى استبدال المسافة بـ %20، وما إلى ذلك. عدم الاهتمام بهذه القضية - خطأ عاممما يؤدي إلى نقل البيانات بشكل غير صحيح.
مرة أخرى في عام 1995 تم تحديد ذلك طريقة إضافيةنقل البيانات عبر HTTP. تم توثيقه في RFC 1867، لذلك يُطلق على هذه الطريقة أحيانًا اسم RFC1867-posting.
تم تصميم هذه الطريقة بشكل أساسي لدعم تحميل الملفات بشكل أفضل. يبدو النموذج الذي يسمح للمستخدم بتحميل ملف كما يلي في HTML:
لاحظ أنه تم تعيين نوع المحتوى على بيانات متعددة الأجزاء/النموذج.
لإرسال البيانات إلى هذا النموذج باستخدام الضفيرة، أدخل الأمر:
# الضفيرة -F upload=@localfilename -F اضغط=OK
4.4 الحقول المخفية
إحدى الطرق الشائعة لنقل معلومات الحالة في تطبيقات HTML هي استخدام الحقول المخفية في النماذج. لا يتم ملء الحقول المخفية، فهي غير مرئية للمستخدم ويتم إرسالها بنفس طريقة الحقول العادية.
مثال بسيط لنموذج يحتوي على حقل واحد مرئي وحقل واحد مخفي وزر موافق:
لإرسال طلب POST باستخدام الضفيرة، لا يتعين عليك التفكير فيما إذا كان الحقل مخفيًا أم لا. بالنسبة للضفيرة فهي كلها متشابهة:
# الضفيرة -d "birthyear=1905&press=OK&person=daniel"
4.5 اكتشف كيف يبدو طلب POST
عندما تريد ملء نموذج وإرسال البيانات إلى الخادم باستخدام حليقة، فمن المحتمل أنك تريد أن يبدو طلب POST تمامًا مثل الطلب الذي تم إجراؤه باستخدام المتصفح.
إحدى الطرق السهلة لرؤية طلب POST الخاص بك هي حفظ صفحة HTML مع النموذج على القرص، وتغيير الطريقة إلى GET، والنقر فوق الزر "إرسال" (يمكنك أيضًا تغيير عنوان URL الذي سيتم إرسال البيانات إليه).
ستشاهد البيانات المرفقة بعنوان URL، مفصولة بأحرف "؟"، كما هو متوقع عند استخدام نماذج GET.
5. ضع
ربما، أفضل طريقةيتم تحميل البيانات إلى خادم HTTP باستخدام PUT. مرة أخرى، يتطلب هذا برنامجًا (برنامجًا نصيًا) على الواجهة الخلفية يعرف ما يجب فعله وكيفية قبول تدفق HTTP PUT.
إرسال ملف إلى الخادم باستخدام الضفيرة:
# الضفيرة -T ملف التحميل www.uploadhttp.com/receive.cgi
6. المصادقة
المصادقة - تمرير اسم المستخدم وكلمة المرور إلى الخادم، وبعد ذلك يتم التحقق مما إذا كان لديك الحق في إكمال الطلب المطلوب. تعتمد المصادقة الأساسية (التي تستخدمها تقنية التجعيد افتراضيًا) على نص عادي، مما يعني أن اسم المستخدم وكلمة المرور لن يتم تشفيرهما، ولكن سيتم "تشويشهما" قليلاً باستخدام خوارزمية Base64، مما يتيح للمهاجمين الموجودين على المسار بينك وبينك إمكانية الوصول إلى النص العادي. معرفة هذه المعلومات خادم HTTP.
إخبار الضفيرة باستخدام اسم المستخدم وكلمة المرور:
# حليقة -u الاسم: كلمة المرور www.secrets.com
قد يتطلب الموقع استخدام طريقة مصادقة مختلفة (انظر إلى ما يكتبه الخادم في الرؤوس)، وفي هذه الحالات يمكنك استخدام مفاتيح --ntlm، --digest، --negotiate أو حتى --anyauth. في بعض الأحيان يتم الوصول إلى خوادم HTTP الخارجية من خلال وكيل، ويتم ذلك غالبًا في الشركات والمؤسسات. قد يتطلب وكيل HTTP اسم المستخدم وكلمة المرور الخاصين بك للوصول إلى الإنترنت. مفتاح الضفيرة المقابلة:
# الضفيرة -U proxyuser:proxypassword curl.haxx.se
إذا كان الوكيل يتطلب المصادقة باستخدام طريقة NTLM، فحدد --proxy-ntlm، إذا كانت طريقة Digest، فحدد --proxy-digest.
إذا لم تقم بتحديد كلمة مرور في الخيارين -u و -U، فسيطلب منك Curl ذلك بشكل تفاعلي.
لاحظ أنه عند تشغيل الضفيرة، قد تكون سلسلة بدء التشغيل (مع المفاتيح وكلمات المرور الخاصة بها) مرئية للمستخدمين الآخرين على نظامك في قائمة المهام. هناك طرق لمنع هذا. المزيد عن هذا أدناه.
7. المرجع
قد يتضمن طلب HTTP حقلاً "مرجعيًا"، يشير إلى عنوان URL الذي وصل منه المستخدم إلى هذا المورد. تتحقق بعض البرامج/النصوص البرمجية من حقل "المُحيل" ولا تنفذ الطلب إذا جاء المستخدم من صفحة غير معروفة. على الرغم من أن هذه طريقة غبية للتحقق، إلا أن العديد من البرامج النصية لا تزال تستخدمها. مع الضفيرة يمكنك وضع أي شيء في حقل "المرجع" وبالتالي جعله يفعل ما تريد.
هذا يفعل كما يلي:
# الضفيرة -e http://curl.haxx.se daniel.haxx.se
تدعم كافة طلبات HTTP حقل "وكيل المستخدم"، الذي يحدد تطبيق العميل الخاص بالمستخدم. تستخدم العديد من تطبيقات الويب هذه المعلومات لعرض الصفحة بطريقة أو بأخرى. يقوم مبرمجو الويب بإنشاء إصدارات متعددة من الصفحة للمستخدمين متصفحات مختلفةبهدف تحسين مظهر، باستخدام نصوص جافا سكريبت وvbscript وما إلى ذلك المختلفة.
في بعض الأحيان قد تجد أن الضفيرة تُرجع صفحة تختلف عن تلك التي رأيتها في متصفحك. في هذه الحالة، من المناسب استخدام حقل "وكيل المستخدم" لخداع الخادم مرة أخرى.
تمويه الضفيرة كما متصفح الانترنتعلى جهاز يعمل بنظام Windows 2000:
# الضفيرة -A "Mozilla/4.0 (متوافق؛ MSIE 5.01؛ Windows NT 5.0)"
لماذا لا تصبح Netscape 4.73 على جهاز Linux (PIIII):
# الضفيرة -A "Mozilla/4.73 (X11; U; Linux 2.2.15 i686)"
9. عمليات إعادة التوجيه
عند الاستجابة لطلبك، قد يعرض الخادم إشارة إلى المكان الذي يجب أن ينتقل إليه المتصفح بعد ذلك للوصول إلى الصفحة بدلاً من الصفحة نفسها. الصفحة المطلوبة. الرأس الذي يشير إلى إعادة التوجيه هذه إلى المتصفح هو "الموقع:".
افتراضيًا، لا ينتقل cur إلى العنوان المحدد في "الموقع:"، ولكنه يعرض الصفحة كالمعتاد. لكن يمكنك توجيهه هكذا:
# الضفيرة -L www.sitethatredirects.com
إذا كنت تستخدم الضفيرة لتقديم طلبات POST إلى موقع يعيد التوجيه فورًا إلى صفحة أخرى، فيمكنك استخدام المجموعة -L و -d/-F بأمان. سيقوم Curl بإنشاء طلب POST للصفحة الأولى، ثم طلب GET للصفحة التالية.
10. ملفات تعريف الارتباط
باستخدام ملفات تعريف الارتباط، تتحكم متصفحات الويب في الحالة من جانب العميل. ملف تعريف الارتباط هو اسم ذو محتوى مرفق. من خلال إرسال ملفات تعريف الارتباط، يخبر الخادم العميل بالمسار واسم المضيف الذي يجب إرسال ملفات تعريف الارتباط إليه في المرة القادمة، وعمر ملفات تعريف الارتباط وبعض المعلمات الأخرى.
عندما يتصل العميل بالخادم على العنوان المحدد في ملف تعريف الارتباط المقبول، يرسل العميل ملف تعريف الارتباط هذا إلى الخادم (إذا لم تنته مدة صلاحيته).
تستخدم العديد من التطبيقات والخوادم هذه الطريقة لدمج طلبات متعددة في جلسة منطقية واحدة. لكي يقوم Curl أيضًا بهذه الوظيفة، يجب أن نكون قادرين على تخزين ملفات تعريف الارتباط وإرسالها، تمامًا كما تفعل المتصفحات.
إن أبسط طريقة لإرسال ملف تعريف الارتباط إلى الخادم عند استرداد صفحة باستخدام الضفيرة هي إضافة المفتاح المناسب إليها سطر الأوامر:
# curl -b "name=Daniel" www.cookiesite.com
يتم إرسال ملفات تعريف الارتباط كرؤوس HTTP عادية. يتيح ذلك لـ curl حفظ ملفات تعريف الارتباط عن طريق الحفاظ على الرؤوس. يتم حفظ ملفات تعريف الارتباط باستخدام الضفيرة باستخدام الأمر:
# حليقة -D headers_and_cookies www.cookiesite.com
(بالمناسبة، لحفظ ملفات تعريف الارتباط، من الأفضل استخدام المفتاح -c، المزيد عن ذلك أدناه).
يحتوي curl على معالج ملفات تعريف الارتباط كامل الميزات، وهو مفيد عندما تريد الاتصال بالخادم مرة أخرى واستخدام ملفات تعريف الارتباط المحفوظة في المرة الأخيرة (أو تعديلها يدويًا). لاستخدام ملفات تعريف الارتباط المخزنة في ملف، قم باستدعاء cur مثل هذا:
# حليقة -b ملفات تعريف الارتباط المخزنة في ملف www.cookiesite.com
يتم تمكين "محرك ملفات تعريف الارتباط" الخاص بـ Curl عند تحديد رمز التبديل -b. إذا كنت تريد أن يقبل cur فقط ملفات تعريف الارتباط، فاستخدم -b لتحديد ملف غير موجود. على سبيل المثال، إذا كنت تريد أن يقبل curl ملفات تعريف الارتباط من صفحة ما ثم يتبع إعادة توجيه (ربما يتخلى عن ملف تعريف الارتباط الذي قبله للتو)، يمكنك استدعاء cur مثل هذا:
# حليقة -ب ندى -L www.cookiesite.com
يستطيع Curl قراءة وكتابة ملفات تعريف الارتباط بتنسيق Netscape وMozilla. هذا طريقة ملائمةتبادل ملفات تعريف الارتباط بين المتصفحات والبرامج النصية التلقائية. يحدد رمز التبديل -b تلقائيًا ما إذا كان هذا الملفملف تعريف الارتباط للمتصفحات المحددة ويتعامل معها وفقًا لذلك، وباستخدام المفتاح -c/--cookie-jar يمكنك إجبار cur على كتابة ملف تعريف ارتباط جديد عند اكتمال العملية:
# حليقة -b cookies.txt -c newcookies.txt www.cookiesite.com
11. HTTPS
هناك عدة طرق لتأمين عمليات نقل HTTP الخاصة بك. البروتوكول الأكثر شهرة الذي يحل هذه المشكلة هو HTTPS، أو HTTP عبر SSL. تقوم طبقة المقابس الآمنة (SSL) بتشفير جميع البيانات المرسلة والمستلمة عبر الشبكة، مما يزيد من احتمالية بقاء معلوماتك سرية.
يدعم Curl الطلبات المقدمة إلى خوادم HTTPS باستخدام مكتبة OpenSSL المجانية. الطلبات تحدث بالطريقة المعتادة:
# حليقة https://that.secure.server.com
11.1 الشهادات
في عالم HTTPS، يمكنك استخدام الشهادات بالإضافة إلى اسم المستخدم وكلمة المرور للمصادقة. يدعم Curl الشهادات من جانب العميل. يتم قفل جميع الشهادات بعبارة مرور تحتاج إلى إدخالها قبل أن يبدأ Curl في العمل معها. العبارة الرئيسيةيمكن تحديدها إما في سطر الأوامر أو إدخالها بشكل تفاعلي. يتم استخدام الشهادات في الضفيرة على النحو التالي:
# الضفيرة -E mycert.pem https://that.secure.server.com
يتحقق Curl أيضًا من صحة الخادم عن طريق التحقق من شهادة الخادم ومقارنتها بشهادة مخزنة محليًا. إذا كان هناك تناقض، فسوف يرفض الضفيرة الاتصال. لتجاهل عمليات التحقق من المصادقة، استخدم رمز التبديل -k.
أكثر معلومات مفصلةحول الشهادات يمكن العثور عليها على http://curl.haxx.se/docs/sslcerts.html.
12. رؤوس الطلبات المخصصة
قد تحتاج إلى تغيير أو إضافة عناصر لطلبات التجعيد الفردية.
على سبيل المثال، يمكنك التغيير طلب ما بعدإلى PROPFIND وإرسال البيانات كـ "نوع المحتوى: نص/xml" (بدلاً من نوع المحتوى العادي):
# حليقة -د "
يمكنك إزالة عنوان عن طريق تحديده بدون محتوى. على سبيل المثال، يمكنك إزالة رأس "المضيف:"، مما يجعل الطلب "فارغًا":
# الضفيرة -H "المضيف:" http://mysite.com
يمكنك أيضًا إضافة العناوين. قد يحتاج خادمك إلى رأس "الوجهة:":
# الضفيرة -H "الوجهة: http://moo.com/nowhere" http://url.com
13. التصحيح
غالبًا ما يحدث أن يستجيب الموقع لطلبات التجعيد بشكل مختلف عن طلبات المتصفح. في هذه الحالة، تحتاج إلى جعل الضفيرة مشابهة قدر الإمكان للمتصفح:
- استخدم رمز التبديل --trace-ascii لحفظ سجل تفصيلي للاستعلامات حتى تتمكن من فحصها بالتفصيل وفهم المشكلة.
- تأكد من التحقق من ملفات تعريف الارتباط واستخدامها إذا لزم الأمر (اقرأ -b واحفظ -c)
- حدد أحد أحدث المتصفحات الشائعة في حقل "وكيل المستخدم".
- املأ حقل "المُحيل" كما يفعل المتصفح
- إذا كنت تستخدم طلبات POST، فتأكد من إرسال جميع الحقول بنفس ترتيب المتصفح (انظر النقطة 4.5 أعلاه)
المساعد الجيد في هذه المهمة الصعبة هو المكون الإضافي LiveHTTPHeader لـ Mozilla/Firefox، والذي يسمح لك بعرض جميع الرؤوس التي يرسلها ويستقبلها هذا المتصفح (حتى عند استخدام HTTPS).
تتمثل الطريقة ذات المستوى الأدنى في التقاط حركة مرور HTTP على الشبكة باستخدام برامج مثل ethereal أو tcpdump، ثم تحليل الرؤوس التي تم استلامها وإرسالها بواسطة المتصفح (HTTPS يجعل هذا الأسلوب غير فعال).
مطلوب قراءة RFC 2616 لأي شخص يريد فهم بروتوكول HTTP.
يشرح RFC 2396 بناء جملة URL.
يحدد RFC 2109 كيفية عمل ملفات تعريف الارتباط.
يحدد RFC 1867 تنسيق نشر تحميل الملف.
http://openssl.planetmirror.com - الصفحة الرئيسيةمشروع OpenSSL
http://curl.haxx.se - الصفحة الرئيسية لمشروع cURL
مثال عملي حقيقي: تحتاج إلى إعادة تشغيل جهاز التوجيه (المودم) لتغيير عنوان IP. للقيام بذلك، تحتاج إلى: تسجيل الدخول إلى جهاز التوجيه، والانتقال إلى صفحة الصيانة والنقر على زر "إعادة التشغيل". إذا كان من الضروري تنفيذ هذا الإجراء عدة مرات، فيجب تكرار الإجراء. أوافق على أنك لا تريد القيام بهذا الروتين يدويًا في كل مرة. يتيح لك cURL أتمتة كل هذا. باستخدام عدد قليل فقط من أوامر cURL، يمكنك الحصول على الترخيص وإكمال المهمة على جهاز التوجيه.
- يعد cURL مفيدًا لاسترداد البيانات من مواقع الويب الموجودة على سطر الأوامر.
أولئك. تعتبر حالات استخدام cURL حقيقية تمامًا، على الرغم من أن المبرمجين الذين يستخدمونها في برامجهم يحتاجون إلى cURL في الغالب.
يدعم CURL العديد من البروتوكولات وطرق الترخيص، ويمكنه نقل الملفات، ويعمل بشكل صحيح مع ملفات تعريف الارتباط، ويدعم شهادات SSL، والوكلاء، وغير ذلك الكثير.
cURL في PHP وسطر الأوامر
يمكننا استخدام cURL بطريقتين رئيسيتين: في نصوص PHP وفي سطر الأوامر.
لتمكين cURL في PHP على الخادم، تحتاج إلى إلغاء التعليق على السطر الموجود في ملف php.ini
الامتداد=php_curl.dll
ومن ثم إعادة تشغيل الخادم.
في نظام التشغيل Linux، تحتاج إلى تثبيت حزمة الضفيرة.
على أنظمة Debian أو Ubuntu أو Linux Mint:
$ sudo apt-get install curl
على Fedora أو CentOS أو RHEL:
$ سودو يم تثبيت الضفيرة
لكي نرى بوضوح الفرق بين الاستخدام في PHP وفي سطر الأوامر، سنقوم بتنفيذ نفس المهام مرتين: أولاً PHP النصيثم على سطر الأوامر. دعونا نحاول عدم الخلط.
استرجاع البيانات باستخدام cURL
استرداد البيانات باستخدام cURL في PHP
مثال في PHP:
كل شيء بسيط للغاية:
$target_url- عنوان الموقع الذي يهمنا. بعد عنوان الموقع، يمكنك وضع نقطتين وإضافة عنوان المنفذ (إذا كان المنفذ مختلفًا عن المنفذ القياسي).
curl_init- تهيئة جلسة جديدة وإرجاع المقبض، والذي تم تخصيصه في مثالنا لمتغير $ch.
نقوم بعد ذلك بتنفيذ الطلب باستخدام وظيفة cURL curl_exec، حيث يتم تمرير الواصف كمعلمة.
كل شيء منطقي للغاية، ولكن عند تنفيذ هذا البرنامج النصي، سيتم عرض محتويات الموقع على صفحتنا. ولكن ماذا لو لم نرغب في عرض المحتوى، ولكننا نريد كتابته في متغير (للمعالجة أو التحليل اللاحق).
دعونا نضيف قليلا إلى السيناريو الخاص بنا:
0) ( صدى "خطأ في الضفيرة: " . curl_error($ch); ) curl_ Close($ch); ?>
لدينا خط curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);.
curl_setopt- يحدد الخيارات. القائمة الكاملةالخيارات متاحة على هذه الصفحة:
مخفية عن الضيوف
$response_data = curl_exec($ch);
الآن تم تعيين قيمة البرنامج النصي للمتغير $response_data، والذي يمكن من خلاله إجراء المزيد من العمليات. على سبيل المثال، يمكنك عرض محتوياته.
غرز
إذا (curl_errno($ch) > 0) ( echo "خطأ في الضفيرة: " . curl_error($ch); )
يعمل على تصحيح الأخطاء في حالة حدوث أخطاء.
استرداد البيانات باستخدام cURL في سطر الأوامر
في سطر الأوامر، فقط اكتب
حيث بدلا من mi-al.ru- عنوان موقع الويب الخاص بك.
إذا كنت بحاجة إلى نسخ البيانات إلى متغير بدلاً من عرض النتيجة على الشاشة، فقم بما يلي:
درجة الحرارة = "curl mi-al.ru"
ومع ذلك، لا يزال يتم عرض بعض البيانات:
لمنع عرضها، قم بإضافة المفتاح -س:
درجة الحرارة = "curl -s mi-al.ru"
ويمكنك مشاهدة ما تم تسجيله:
صدى $ درجة الحرارة | أقل
المصادقة الأساسية وHTTPالمصادقة، ببساطة، هي إدخال اسم المستخدم وكلمة المرور.
المصادقة الأساسية هي المصادقة المستندة إلى الخادم. ولهذا يتم إنشاء ملفين: .htaccessو .htpasswd
محتويات ملف .htaccess هي شيء من هذا القبيل
AuthName "للمستخدمين المسجلين فقط!" يتطلب AuthType Basic مستخدمًا صالحًا AuthUserFile /home/freeforum.biz/htdocs/.htpassw
محتويات ملف .htpasswd هي كالتالي:
ميال:CRdiI.ZrZQRRc
أولئك. تسجيل الدخول وتجزئة كلمة المرور.
عند محاولة الوصول إلى مجلد محمي بكلمة مرور، سيعرض المتصفح شيئًا مثل هذا:
مصادقة HTTP هي الحالة عندما نقوم بإدخال معلومات تسجيل الدخول وكلمة المرور في نموذج على موقع ويب. يتم استخدام هذه المصادقة عند تسجيل الدخول إلى البريد والمنتديات وما إلى ذلك.
مصادقة cURL الأساسية (PHP)
هناك موقع على الانترنت
مخفية عن الضيوف
دعونا نجرب السيناريو الأولي لدينا:
0) ( echo "خطأ في الضفيرة: " . curl_error($ch); ) else ( echo $response_data; ) curl_ Close($ch); ?>
على الرغم من أن البرنامج النصي يعتقد أنه لا يوجد خطأ، إلا أننا لا نحب النتيجة على الإطلاق:
أضف سطرين:
Curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_USERPWD, "ru-board:ru-board");
في السطر الأول قمنا بتعيين نوع المصادقة - أساسي. يحتوي السطر الثاني على الاسم وكلمة المرور مفصولين بنقطتين (في حالتنا، الاسم وكلمة المرور متماثلان - ru-board). اتضح مثل هذا:
0) ( echo "خطأ في الضفيرة: " . curl_error($ch); ) else ( echo $response_data; ) curl_ Close($ch); ?> دعنا نحاول: 30946 عظيم! مصادقة cURL الأساسية (في سطر الأوامر) يمكن تحقيق نفس الشيء في سطر الأوامر بسطر واحد: curl -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/
لم أنس تحديد نوع المصادقة، كل ما في الأمر هو أن نوع المصادقة الأساسي في cURL هو النوع الافتراضي.
تم كل شيء بسرعة كبيرة في سطر الأوامر لدرجة أنني كتبت البرنامج التالي بسبب الإحباط. تتصل بالموقع وتقوم بتنزيل آخر تحديث:
Temp=`curl -s -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/ | grep -E -o "Update_FED_201(1).(2).(2).7z" | يونيك | الذيل - ن 1`؛ حليقة -o $temp -u ru-board:ru-board http://62.113.208.29/Update_FED_DAYS/$temp
مع عدد قليل من الأوامر الأخرى يمكنك إضافة:
- تفريغ الأرشيف في الدليل المحدد؛
- إطلاق تحديثات ConsultantPlus (هذه تحديثات له)؛
- يمكنك التحقق مما إذا كان قد تم بالفعل تنزيل آخر تحديث متاح أو ظهور تحديث جديد؛
- أضف كل ذلك إلى Cron للحصول على التحديثات اليومية.
مصادقة HTTP cURL في PHP
نحن بحاجة إلى معرفة:
- العنوان حيث سيتم إرسال بيانات المصادقة
- طريقة الإرسال GET أو POST
- تسجيل الدخول
- كلمة المرور
يمكن الحصول على العنوان الذي تريد إرسال البيانات إليه من نموذج المصادقة. على سبيل المثال: