تشريح الطلب
الدرس 20 من 47 في دورة التعامل مع الشبكات عبر الطرفية على Coddy.
تحت غطاء curl، يكون طلب HTTP عبارة عن نص عادي يُرسَل عبر مقبس. ويبدأ بسطر واحد يحدد ما تريده:
GET /index.html HTTP/1.1ثلاثة أجزاء: الطريقة (نوع العملية)، والمسار (العنصر المعني)، والإصدار. بعد ذلك تأتي الترويسات، واحدة في كل سطر، ثم سطر فارغ، ثم محتوى اختياري.
السطر الفارغ ليس للزينة. فمن خلاله يعرف الخادم أن الترويسات انتهت وأن المحتوى، إن وُجد، يبدأ. والطلب الذي لا يحتوي عليه يظل معلّقًا، لأن الخادم لا يزال ينتظر وصول بقية البيانات.
يمكنك إرسال طلب يدويًا. يفتح nc اتصالًا خامًا، وكل ما تمرّره إليه يذهب مباشرة عبر الشبكة:
printf 'GET / HTTP/1.0\r\n\r\n' | nc 127.0.0.1 9110إن \r\n هو نهاية السطر التي يتطلبها HTTP، والمقطع المكرر هو ذلك السطر الفارغ.
التحدي
صعبتجاوز curl بالكامل وتحدّث HTTP بنفسك.
- أنشئ
index.htmlيحتوي علىraw - قدّم المجلد على المنفذ 9110
- أرسل طلبًا خامًا من نوع
GET /index.html HTTP/1.0عبرncواطبع السطر الأول فقط مما يعود
ذلك السطر الأول هو سطر حالة الخادم. الناتج المتوقع:
HTTP/1.0 200 OKتذكّر السطر الفارغ:
printf 'GET /index.html HTTP/1.0\r\n\r\n'.
جرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس التعامل مع الشبكات عبر الطرفية
تدرّب بنفسك: Playground لـ Terminal