انتقل إلى محتوى الدرس
الدرس 59
دورة تكنولوجيا الويب

معلمات HTTPHTTP Parameters

دليل شامل لمعلمات طلب HTTP في مسار الرابط وسلسلة الاستعلام وجسم الطلب، مع التمييز بين المعلمات الفعالة ومعلمات التتبع، وحدود طول الرابط العملية (414)، وحماية البيانات الحساسة من التسرب.
أقسام الدرس
8
الأمثلة
3
اللغة
العربية
تاريخ النشر
المشاهدات
1,362
محتوى الدرس
في هذا الدرس 8تصفّح المواضيع

تعرّفنا في الدروس السابقة على كيف يحدد طلب HTTP العملية المطلوبة عبر طريقة الطلب ( أو أو ). غير أن أغلب العمليات تحتاج إلى مدخلات متغيرة لتعمل بدقة: فما رقم المستخدم المراد جلبه؟ وما كلمة البحث المطلوبة؟ وما رقم الصفحة؟ وما بيانات النموذج المراد حفظها؟ تُعرف هذه المدخلات التي يمررها العميل إلى الخادم باسم معلمات طلب HTTP ()، وتنتقل عبر الرسالة في ثلاثة مواضع رئيسية: مسار الرابط ()، وسلسلة الاستعلام ()، وجسم الطلب ().

قبل الغوص في التفاصيل الهندسية، استعرض جدول المصطلحات التقنية الأساسية لهذا الدرس:

المصطلح بالعربية المصطلح بالإنجليزية النطق التقني المعنى الهندسي المبسط
معلمات طلب HTTP ريكويست باراميترز القيم والمدخلات المتغيرة التي يرسلها العميل ضمن الطلب لتخصيص استجابة الخادم أو تحديد البيانات المستهدفة.
معلمات سلسلة الاستعلام كويري سترينج باراميترز أزواج مفتاح=قيمة تأتي في الرابط بعد علامة الاستفهام (?) ويفصل بينها رمز (&) للبحث والتصفية والترتيب.
معلمات المسار باث باراميترز قيم متغيرة مدمجة مباشرة داخل مقاطع مسار الرابط (مثل /users/42) لتحديد مورد فريد بعينه.
معلمات جسم الطلب بودي باراميترز البيانات المهيكلة المرسلة داخل جسم الطلب بعد السطر الفارغ (بصيغة JSON أو بيانات النماذج).
المعلمات الفعالة مقابل التتبع أكتيف آند تراكينج باراميترز التمييز بين المعلمات التي تغير محتوى الصفحة فعلياً وبين معلمات قياس الحملات الإعلانية (مثل utm_source).
الحالة رقم 414 (الرابط طويل جداً) فور فورتين يو آر آي تو لونج كود خطأ يعيده الخادم عندما يتجاوز طول الرابط ومعلمات الاستعلام الحد الأقصى المسموح به.

تعتمد جميع تطبيقات الويب التفاعلية على المعلمات لتحويل المسارات الثابتة إلى خدمات مرنة تلبي طلب كل مستخدم. وبحسب طبيعة البيانات والغرض منها، يضع مهندسو الويب المعلمات في واحد من ثلاثة مواضع معمارية داخل طلب HTTP:

  1. 1. معلمات مسار الرابط (): تُدمج مباشرة داخل مقاطع المسار (مثل ) لتحديد مورد أساسي فريد لا يستقيم الطلب بدونه.
  2. 2. معلمات سلسلة الاستعلام (): تُلحق بنهاية المسار بعد علامة الاستفهام () لتمرير خيارات البحث والتصفية والترتيب والترقيم (مثل ).
  3. 3. معلمات جسم الطلب (): توضع داخل جسم الرسالة في طلبات و و لإرسال البيانات المهيكلة، أو حقول النماذج، أو الملفات المرفوعة.

تأمل المخطط المعماري الآتي الذي يوضح المواضع الثلاثة لمعلمات HTTP داخل بنية الطلب:

مخطط يوضح الفرق المعماري بين معلمات المسار Path ومعلمات الاستعلام Query ومعلمات جسم الطلب Body

تُكتب معلمات سلسلة الاستعلام () في نهاية مسار الرابط وفق قواعد صياغة قياسية دقيقة يحددها المعيار RFC 3986:

  • علامة بداية الاستعلام (): توضع علامة استفهام واحدة فقط للفصل بين مسار المورد وبداية سلسلة الاستعلام.
  • ربط المفتاح بالقيمة (): تُكتب كل معلمة على صورة زوج (مثل ).
  • الفصل بين المعلمات المتعددة (): يُربط بين كل معلمة والتي تليها برمز العطف (مثل ).
  • القيم المتعددة وترميز المحارف: يمكن تكرار المفتاح نفسه لتمرير مصفوفة قيم (مثل )، كما يجب ترميز المسافات والرموز الخاصة بنظام النسبة المئوية () كما يظهر في سطر الطلب الفعلي الآتي:
نص
# Browser URL: https://www.closetag.com/search?q=http+methods&lang=ar&page=2
GET /search?q=http+methods&lang=ar&page=2 HTTP/1.1
Host: www.closetag.com
Accept: text/html

ليست كل معلمة تظهر في عنوان الرابط تغيّر المحتوى الذي يعيده الخادم. يصنّف مهندسو الأداء ومحركات البحث معلمات سلسلة الاستعلام وظيفياً إلى فئتين رئيسيتين:

  1. 1. المعلمات الفعالة المغيّرة للمحتوى (): وهي المعلمات التي يقرؤها الخادم لتغيير البيانات المعروضة في الصفحة فعلياً:
    • البحث والتصفية: مثل أو .
    • الترتيب وتعدد الصفحات: مثل و و.
    • تخصيص العرض أو اللغة: مثل أو .
  2. 2. معلمات التتبع والإحصاء السلبية (): وهي معلمات تُضاف في الروابط الإعلانية أو الشبكات الاجتماعية لقياس مصدر الزيارة فقط دون أن تغير حرفاً واحداً من محتوى الصفحة:
    • وسوم الحملات التسويقية: مثل .
    • معرفات النقرات الإعلانية: مثل و.

معلمات المسار () هي قيم متغيرة تُدمج مباشرة كجزء من مقاطع المسار المفصولة بشرطة مائلة ()، وتُكتب في توثيق واجهات البرمجة غالباً بصيغة قوالب مثل .

وعند إرسال الطلب الفعلي عبر الشبكة، تُستبدل هذه القوالب بالقيم الحقيقية التي تحدد المورد المطلوب بدقة ضمن تسلسل هرمي واضح ونظيف:

نص
# Route Template: /api/v1/chapters/{chapterSlug}/lessons/{lessonId}
GET /api/v1/chapters/http/lessons/764 HTTP/1.1
Host: api.closetag.com
Accept: application/json

عند تصميم روابط صفحات الويب وواجهات البرمجة ()، متى نضع المعلمة في مسار الرابط (Path) ومتى نضعها في سلسلة الاستعلام (Query)؟ القاعدة الهندسية القياسية واضحة:

  • استخدم معلمات المسار () لتحديد هوية مورد فريد أو تسلسل هرمي إلزامي: عندما تشير إلى سجل محدد بمعرّفه الفريد أو اسمه اللطيف (مثل ). حذف معلمة المسار يغيّر طبيعة المسار نفسه أو يؤدي إلى خطأ .
  • استخدم معلمات الاستعلام () للبحث أو التصفية أو الترتيب أو ترقيم الصفحات (اختيارية): عندما تطلب قائمة موارد وتريد تخصيص عرضها (مثل ). إذا حُذفت معلمات الاستعلام الاختيارية يظل المسار صالحاً ويعيد القائمة الافتراضية.

جرّب المحاكي التفاعلي الآتي لمقارنة معلمات المسار والاستعلام وجسم الطلب في حالات عملية متنوعة:

عند إرسال النماذج أو إنشاء السجلات أو رفع الملفات عبر طلبات و و، تنتقل المعلمات داخل جسم الطلب () بعد السطر الفارغ الفاصل. ويعرف الخادم طريقة فك وقراءة هذه المعلمات من خلال فحص حقل الرأس وفق ثلاث صيغ قياسية رئيسية:

  1. 1. الصيغة النصية المرمزة للنماذج (): هي الصيغة الافتراضية لنماذج التقليدية؛ حيث تُكتب المعلمات داخل جسم الطلب بنفس طريقة سلسلة الاستعلام ().
  2. 2. صيغة الكائنات المهيكلة (): الصيغة القياسية في تطبيقات الويب الحديثة وواجهات البرمجة، وتتميز بدعم الكائنات المتداخلة والمصفوفات والأرقام والقيم المنطقية مباشرة.
  3. 3. صيغة الأجزاء المتعددة (): تقسم جسم الطلب إلى أجزاء مفصولة بحد نصي مميز () لإرسال الحقول النصية مع الملفات الثنائية كالصور والمستندات في طلب واحد.

قارن في المثال الآتي بين شكل معلمات الجسم بصيغة النماذج التقليدية وبصيغة على السلك:

نص
# 1) HTML Form Body: Content-Type: application/x-www-form-urlencoded
POST /enrollment HTTP/1.1
Host: www.closetag.com
Content-Type: application/x-www-form-urlencoded

course=http&student_id=42&notify=on

# 2) Structured API Body: Content-Type: application/json
POST /api/v1/enrollments HTTP/1.1
Content-Type: application/json

{"course":"http","student_id":42,"notify":true}

كم يبلغ الحد الأقصى لطول الرابط ومعلمات الاستعلام قبل أن يرفضه الخادم؟ رغم أن المعيار القياسي RFC 9110 لا يفرض رقماً وحيداً جامداً، فإنه يوصي بدعم ما لا يقل عن 8,000 بايت (8 كيلوبايت)، وتفرض المتصفحات وخوادم الويب حدوداً عملية صارمة في الواقع:

  • الحد الآمن العالمي الشامل (نحو 2,000 حرف): إبقاء الطول الكلي للرابط دون 2,000 حرف يضمن عمله بتوافق تام بنسبة 100% عبر جميع المتصفحات، وعناكب محركات البحث، وبرامج البريد الإلكتروني، والخوادم الوسيطة.
  • حدود خوادم الويب وموزعات المحتوى (من 4 إلى 8 كيلوبايت): تضع خوادم الويب الشهيرة مثل و سقفاً افتراضياً لطول سطر الطلب يقارب 8 كيلوبايت (8,190 بايت) لحماية الذاكرة من هجمات استنزاف الموارد.
  • رمز الخطأ القياسي : إذا حاول العميل حشر نصوص ضخمة أو قوائم طويلة داخل معلمات الرابط وتجاوز سقف الخادم، يرفض الخادم الطلب فوراً برمز الحالة ؛ ولذلك يجب دائماً نقل البيانات الكبيرة إلى جسم الطلب ().

من الأخطاء الشائعة شديدة الخطورة اعتقاد بعض المبتدئين أن: «موقعي يعمل ببروتوكول HTTPS المشفر، إذن لا بأس من وضع كلمة المرور أو رمز الجلسة في الرابط مثل لأن التشفير يحميه!»

ورغم أن HTTPS يشفر مسار الرابط ومعلمات الاستعلام أثناء عبورها في سلك الشبكة فعلاً، فإن وضع أي بيانات حساسة (كلمات المرور، أو رموز الجلسات، أو مفاتيح API، أو البيانات الشخصية السرية) داخل معلمات الرابط يظل ثغرة أمنية خطيرة وفق معايير OWASP؛ لأن الرابط الكامل يُحفظ كنص مكشوف في طرفي الاتصال ويتسرب عبر خمس قنوات رئيسية:

  1. 1. سجل التصفح المحلي والعلامات المرجعية (): يحفظ المتصفح الرابط الكامل بمعلماته في سجل التصفح والمزامنة السحابية كنص مقروء لأي شخص يستخدم الجهاز.
  2. 2. ملفات سجلات الخادم وموزعات المحتوى (): تسجل خوادم الويب () وشبكات CDN سطر الطلب الكامل بما فيه سلسلة الاستعلام تلقائياً في ملفات نصية دائمة، بينما لا تسجل أجسام الطلبات () افتراضياً.
  3. 3. التسرب للمواقع الخارجية عبر حقل الرأس : إذا احتوت الصفحة على رابط خارجي أو مورد من نطاق آخر، قد يرسل المتصفح عنوان الصفحة الحالي كاملاً بمعلماته السرية داخل حقل الرأس إلى ذلك الطرف الثالث.
  4. 4. النسخ والمشاركة المباشرة وظهور شريط العنوان: ينسخ المستخدمون الروابط من شريط العنوان لمشاركتها أو يظهر شريط العنوان أثناء مشاركة الشاشة دون انتباه لوجود رمز سري داخل الرابط.
  5. 5. سكربتات الإحصاء والتحليلات الخارجية: تقرأ أدوات الإحصاء المضمنة في الصفحة عنوان الرابط الكامل () وترسله تلقائياً إلى خوادم التحليلات.

تأمل المخطط الأمني الآتي ثم جرّب المحاكي التفاعلي لاختبار الفرق بين وضع الأسرار في الرابط وإرسالها في الرؤوس أو جسم الطلب المشفر:

مخطط أمني يوضح القنوات الخمس لتسرب البيانات الحساسة الموضوعة في معلمات الرابط مقارنة بالإرسال الآمن في الرؤوس وجسم الطلب
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

تعلّمنا في هذا الدرس أنواع معلمات طلب HTTP الثلاثة: معلمات سلسلة الاستعلام ()، والفرق بين المعلمات الفعالة ومعلمات التتبع، ومعلمات المسار ()، ومتى نختار المسار أو الاستعلام، ومعلمات جسم الطلب () بصيغها الثلاث، والحدود العملية لطول الرابط ()، وقواعد حماية البيانات الحساسة من التسرب عبر الروابط. الخطوة التالية: انتقل الآن إلى الدرس التالي استجابة HTTP () لندرس بالتفصيل كيف يبني الخادم رده الكامل ويعيده إلى العميل!

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات12

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 12 مفهومةأول بطاقة، أول خطوة
01 HTTP Request Parameters معلمات طلب HTTP
المدخلات والقيم المتغيرة التي يرسلها العميل في مسار الرابط أو سلسلة الاستعلام أو جسم الطلب لتحديد البيانات المطلوبة.
للمراجعة
02 Query String Parameters معلمات سلسلة الاستعلام (Query Parameters)
أزواج مفتاح وقيمة تلحق بعنوان الرابط بعد علامة الاستفهام (?) ويفصل بينها الرمز (&)، وتُستخدم للبحث والتصفية والترتيب.
للمراجعة
03 URL Path Parameters معلمات المسار (Path Parameters)
معرفات متغيرة تُدمج مباشرة داخل مقاطع مسار الرابط (مثل /users/42) لتحديد مورد فريد بعينه ضمن تسلسل هرمي.
للمراجعة
04 Request Body Parameters معلمات جسم الطلب (Body Parameters)
البيانات والمعلمات المرسلة داخل جسم رسالة الطلب بعد السطر الفارغ الفاصل في طلبات POST وPUT وPATCH.
للمراجعة
05 Active Parameters المعلمات الفعالة المغيرة للمحتوى
معلمات الاستعلام التي تغير المحتوى الفعلي الذي يعيده الخادم مثل معلمات البحث والتصفية وترقيم الصفحات.
للمراجعة
06 Tracking (Passive) Parameters معلمات التتبع السلبية (Tracking Parameters)
معلمات إحصائية (مثل utm_source وfbclid) تُضاف لقياس مصادر الزيارات والحملات الإعلانية دون تغيير محتوى الصفحة.
للمراجعة
07 application/x-www-form-urlencoded صيغة النماذج المرمزة (URL-Encoded Form)
الصيغة الافتراضية لنماذج HTML التي تكتب معلمات جسم الطلب على هيئة أزواج key=value مفصولة بالرمز &.
للمراجعة
08 multipart/form-data صيغة الأجزاء المتعددة (Multipart Form)
صيغة لتقسيم جسم الطلب إلى أجزاء مفصولة بحدود نصية لإرسال المعلمات النصية مع الملفات الثنائية المرفوعة.
للمراجعة
09 414 URI Too Long رمز الحالة 414 (الرابط طويل جداً)
كود الخطأ القياسي الذي يعيده الخادم عندما يتجاوز طول عنوان الرابط ومعلماته الحد الأقصى المسموح به على الخادم.
للمراجعة
10 Referer Header Leakage تسرب الرابط عبر حقل الرأس Referer
خطر أمني يحدث عندما يتسرب رمز سري موجود في عنوان الرابط إلى مواقع خارجية عبر حقل الرأس Referer.
للمراجعة
11 One-Time Token رمز الاستخدام الواحد (One-Time Token)
رمز مؤقت صالح للاستخدام مرة واحدة فقط وخلال دقائق معدودة لتأمين روابط استعادة كلمة المرور.
للمراجعة
12 Canonical URL الرابط الأساسي المعتمد (Canonical URL)
العنوان الأصلي المعتمد للصفحة الذي يعلن عنه الموقع لتوحيد الروابط المتعددة الناتجة عن معلمات التتبع.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات5

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 5 مفهومةأول بطاقة، أول خطوة
01 URI URI
Uniform Resource Identifier
معرّف الموارد الموحد الذي يحدد عنوان ومسار المورد على الويب وفق المعيار RFC 3986.
للمراجعة
02 UTM UTM
Urchin Tracking Module
معلمات استعلام قياسية (مثل utm_source) تُضاف في الروابط لقياس أداء الحملات التسويقية دون تغيير محتوى الصفحة.
للمراجعة
03 JSON JSON
JavaScript Object Notation
صيغة نصية خفيفة ومهيكلة تُستخدم على نطاق واسع لإرسال المعلمات والبيانات داخل أجسام طلبات واستجابات HTTP.
للمراجعة
04 OWASP OWASP
Open Worldwide Application Security Project
المنظمة العالمية لأمن تطبيقات الويب التي تصدر المعايير والأدلة الإرشادية لحماية البيانات والمعلمات.
للمراجعة
05 IDOR IDOR
Insecure Direct Object Reference
ثغرة أمنية تحدث عندما يثق الخادم بمعرّف المورد المرسل في المعلمات دون التحقق من صلاحية المستخدم للوصول إليه.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/3مهام منجزة
  1. افحص الرابط "/api/v1/courses/web-technology/lessons?lang=ar&page=2" وحدد معلمة المسار المدمجة ومعلمتَي سلسلة الاستعلام بعد علامة الاستفهام.

  2. قارن بين طلبي POST في الموضوع السادس، ولاحظ الفرق في كتابة المعلمات وحقل الرأس Content-Type بين صيغة النماذج التقليدية وصيغة JSON.

  3. تصفح السيناريوهات الأربعة في محاكي التدقيق الأمني في الموضوع الثامن، وتحقق من كيفية نقل المفاتيح السرية وكلمات المرور من الرابط إلى حقل الرأس Authorization أو جسم الطلب.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

12أسئلة 1أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي12 أسئلة تنتظرك
01

ما المواضع المعمارية الثلاثة الرئيسية التي يمكن للعميل تمرير المعلمات (Parameters) عبرها في طلب HTTP؟

02

في سلسلة الاستعلام القياسية مثل "/search?category=http&page=2"، ما الرمزان المستخدمان لبدء سلسلة الاستعلام وللفصل بين المعلمات المتعددة؟

03

ما الفرق الهندسي بين المعلمات الفعالة (Active Parameters مثل ?page=2) ومعلمات التتبع السلبية (Tracking Parameters مثل ?utm_source=email)؟

04

في الطلب "GET /api/v1/users/42/posts HTTP/1.1"، ما نوع المعلمة التي يمثلها الرقم "42"؟

05

وفق أفضل الممارسات الهندسية لتصميم الروابط وواجهات REST API، متى نستخدم معلمات المسار (Path) ومتى نستخدم معلمات الاستعلام (Query)؟

06

ما اسم حقل الرأس في طلب HTTP الذي يُعلِم الخادم بالصيغة المستخدمة لترميز معلمات جسم الطلب (سواء كانت بيانات نموذج أو JSON أو متعددة الأجزاء)؟

07

أيّ صيغة من صيغ Content-Type صُممت خصيصاً لإرسال الحقول النصية مع الملفات الثنائية المرفوعة (كالصور والمستندات) في جسم طلب واحد؟

08

ما رمز الحالة القياسي الذي يعيده خادم الويب عندما يرسل العميل رابطاً بمعلمات استعلام تتجاوز الحد الأقصى المسموح به لطول العنوان؟

09

ما الحد الأقصى العملي الموصى به لطول الرابط الكلي لضمان التوافق الآمن عبر جميع المتصفحات وعناكب البحث والخوادم الوسيطة؟

10

لماذا يُعدّ وضع كلمات المرور أو مفاتيح API أو رموز الجلسات داخل معلمات الرابط خطراً أمنياً جسيماً حتى عند استخدام اتصال HTTPS المشفر؟

11

أين يجب وضع رموز المصادقة (Bearer Tokens) أو مفاتيح API عند إرسال طلب GET بدلاً من وضعها في سلسلة استعلام الرابط؟

12

كيف يؤمّن مهندسو الأمان روابط استعادة كلمة المرور المرسلة بالبريد الإلكتروني والتي تضطر لتمرير رمز تحقق في الرابط؟