Kodokon kodokon.com

بروتوكول HTTP على المكشوف: الطرق ورموز الحالة

اقرأ طلبًا حقيقيًا واستجابة حقيقية، وتعلّم ما تعنيه فعلًا الرموز 200 و404 و500.

8 دقيقة · 3 أسئلة

افتح هذا الدرس في Kodokon

HTTP (HyperText Transfer Protocol) هي اللغة التي يتحدّث بها المتصفح والخادم فيما بينهما. والخبر السار: إنها ليست شيفرة ثنائية غير مفهومة، بل نصّ مقروء. فالطلب يتّسع في بضعة أسطر: فعل، ثم عنوان، ثم ترويسات توضّح السياق (أي لغة أفضّل، وأي متصفح أستخدم). وتتّبع الاستجابة الشكل نفسه: رمز رقمي، ثم ترويسات، ثم سطر فارغ، ثم المحتوى.

BASH
curl -i https://example.com

HTTP/2 200
content-type: text/html; charset=UTF-8
content-length: 1256
cache-control: max-age=86400

<!doctype html>
<html>
...
الخيار -i يطلب من curl عرض ترويسات الاستجابة أيضًا، لا المحتوى وحده.

يُسمّى الفعل الموضوع في بداية الطلب طريقة، وهو يعلن نيّتك. فالطريقة GET تطلب ببساطة قراءة مورد: وهذا ما يفعله المتصفح كلما فتحت صفحة. والطريقة POST ترسل بيانات إلى الخادم، عادةً عندما ترسل نموذج تسجيل. أما PUT فتحدّث عنصرًا موجودًا، وDELETE تطلب حذفه. ركّز على الأوليَين: فهما تمثّلان الغالبية الساحقة من حركة البيانات كلها.

BASH
curl -X POST -d "name=Sarah&age=30" https://httpbin.org/post
طلب POST: الخيار -d يوفّر البيانات المرسلة، تمامًا كما يفعل النموذج.

تبدأ كل استجابة بـ رمز حالة من ثلاثة أرقام. والرقم الأول وحده يكفي لتفهم الوضع. فالرموز في نطاق 2xx تعني النجاح: الرمز 200 يعني "ها هو ما طلبته". والرموز 3xx إعادات توجيه: فالرمز 301 يعني "هذه الصفحة انتقلت، اذهب إلى هناك بدلًا من ذلك". والرموز 4xx تشير إلى خطأ في جهة العميل: 404 (المورد غير موجود)، و403 (الوصول ممنوع)، و401 (عليك تسجيل الدخول). أما الرموز 5xx فتشير إلى عطل في جهة الخادم: والرمز 500 هو الخطأ الداخلي الكلاسيكي.

BASH
curl -I https://example.com/this-page-does-not-exist

HTTP/2 404
content-type: text/html; charset=UTF-8
الخيار -I (بحرف I كبير) لا يطلب سوى الترويسات: مثالي للتحقق من رمز الحالة.

اختبار المعرفة

تأكّد من أنك تذكّرت النقاط الأساسية في هذا الدرس.

  1. ماذا يعني رمز الحالة 404؟
    • أن الخادم تعطّل
    • أن المورد المطلوب غير موجود على هذا العنوان
    • أن الطلب نجح
  2. أي عائلة من الرموز تشير إلى مشكلة في جهة الخادم؟
    • الرموز 2xx
    • الرموز 3xx
    • الرموز 4xx
    • الرموز 5xx
  3. أي طريقة HTTP يستخدمها المتصفح لقراءة صفحة ببساطة؟
    • GET
    • POST
    • DELETE