اقرأ طلبًا حقيقيًا واستجابة حقيقية، وتعلّم ما تعنيه فعلًا الرموز 200 و404 و500.
افتح هذا الدرس في KodokonHTTP (HyperText Transfer Protocol) هي اللغة التي يتحدّث بها المتصفح والخادم فيما بينهما. والخبر السار: إنها ليست شيفرة ثنائية غير مفهومة، بل نصّ مقروء. فالطلب يتّسع في بضعة أسطر: فعل، ثم عنوان، ثم ترويسات توضّح السياق (أي لغة أفضّل، وأي متصفح أستخدم). وتتّبع الاستجابة الشكل نفسه: رمز رقمي، ثم ترويسات، ثم سطر فارغ، ثم المحتوى.
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>
...يُسمّى الفعل الموضوع في بداية الطلب طريقة، وهو يعلن نيّتك. فالطريقة GET تطلب ببساطة قراءة مورد: وهذا ما يفعله المتصفح كلما فتحت صفحة. والطريقة POST ترسل بيانات إلى الخادم، عادةً عندما ترسل نموذج تسجيل. أما PUT فتحدّث عنصرًا موجودًا، وDELETE تطلب حذفه. ركّز على الأوليَين: فهما تمثّلان الغالبية الساحقة من حركة البيانات كلها.
curl -X POST -d "name=Sarah&age=30" https://httpbin.org/postتبدأ كل استجابة بـ رمز حالة من ثلاثة أرقام. والرقم الأول وحده يكفي لتفهم الوضع. فالرموز في نطاق 2xx تعني النجاح: الرمز 200 يعني "ها هو ما طلبته". والرموز 3xx إعادات توجيه: فالرمز 301 يعني "هذه الصفحة انتقلت، اذهب إلى هناك بدلًا من ذلك". والرموز 4xx تشير إلى خطأ في جهة العميل: 404 (المورد غير موجود)، و403 (الوصول ممنوع)، و401 (عليك تسجيل الدخول). أما الرموز 5xx فتشير إلى عطل في جهة الخادم: والرمز 500 هو الخطأ الداخلي الكلاسيكي.
curl -I https://example.com/this-page-does-not-exist
HTTP/2 404
content-type: text/html; charset=UTF-8