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

طلب HTTPHTTP Request

سنتعرف في هذا الدرس على طلب HTTP request، وعلي بنية رسالة طلب HTTP request message structure، وسطر الطلب HTTP request Line، ورؤوس HTTP headers، وجسم الطلب HTTP body، بالإضافة إلى حقول البادئة أو رأس رسالة HTTP لضمان إرسال البيانات واستلامها بشكل صحيح.
أقسام الدرس
6
الأمثلة
7
اللغة
العربية
تاريخ النشر
المشاهدات
4,662
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

HTTP Request طلب HTTP

طلب HTTP request هو رسالة تُرسل من العميل مثل متصفح الويب إلى الخادم بهدف الحصول على مورد معين [صفحة ويب مثلًا] أو تنفيذه. ويُعتبر طلب HTTP request أحد المكونات الأساسية في عملية التواصل على الإنترنت، وهو ما يُمكِّن المستخدمين من التفاعل مع المواقع والتطبيقات بسهولة وسلاسة.

وتتكون طلبات HTTP requests من عدة أجزاء رئيسية تشمل سطر طلب HTTP request line، ورؤوس HTTP headers، و جسم HTTP body، ولكل جزء منها دور مهم في تحديد وتوصيل المعلومات المطلوبة من الخادم.

الأسطر النصية في هذا الدرس تصف HTTP/1.1؛ يختلف التأطير في HTTP/2 وHTTP/3. جسم الطلب اختياري بحسب دلالة الطريقة، وتفصل الرؤوس عنه نهاية سطر فارغة CRLF. الأمثلة توضيحية ولا تثبت وجود هذه المسارات أو الحسابات على الموقع الحالي.

HTTP Request Message Structure

محتوي رسالة طلب HTTP تكون بهذا النمط.

نص
Request line | header | message body

HTTP Request Message Structure بنية رسالة طلب HTTP

بنية رسالة طلب HTTP تتكون من عدة أجزاء تُحدد كيفية نقل البيانات من العميل مثل [متصفح الويب] إلى الخادم مثل [خادم الويب]. ورسالة HTTP يمكن أن تكون إما طلب request أو استجابة response.

تتكون بنية رسالة طلب HTTP Request كتالي:


1. سطر طلب HTTP Request Line: يحدد نوع الطلب مثل GET أو POST، والمورد المطلوب URI، وإصدار بروتوكول HTTP المستخدم.

2. رؤوس HTTP Headers: توفر معلومات إضافية حول الطلب request أو الاستجابة response، مثل نوع المحتوى، والإعدادات الخاصة بالاتصال، والمعلمات الأمنية security parameters.

3. جسم HTTP Body: يحتوي على البيانات المُرسَلة مع الطلب، ويشيع مع POST وPUT. لا توجد دلالة عامة لجسم GET؛ لا ينشئه العميل إلا عند اتفاق مباشر مع الخادم على دعمه، وقد ترفضه وسائط في الطريق.

HTTP Request Line سطر طلب HTTP

سطر طلب HTTP request line يحدد نوع الطلب مثل GET أو POST، والمورد المطلوب URI، وإصدار بروتوكول HTTP المستخدم.

مكونات سطر طلب HTTP Request Line:

1. الطريقة Method: طريقة HTTP المطلوب من الخادم تنفيذه أو القيام به مثل GET، POST، PUT، و DELETE مثلاً [DELETE حذف مورد معين من الخادم].

2. Uniform Resource Identifier URI: معرف الموارد الموحد لتحديد المورد المطلوب مثلاً، صفحة موقع كلوز تاج الرئيسية.

3. إصدار البروتوكول HTTP Version: إصدار HTTP المستخدم مثل HTTP/1.1.

HTTP Get Request Line

سطر طلب http من النوع get يكون بهذا الشكل.

نص
GET /search?q=html HTTP/1.1

HTTP Post Request Line

سطر طلب http من النوع post يكون بهذا الشكل.

نص
POST /login HTTP/1.1

HTTP Request Headers رؤوس طلب HTTP

رؤوس HTTP headers توفر معلومات إضافية حول الطلب request أو الاستجابة response، مثل نوع المحتوى، والإعدادات الخاصة بالاتصال، والمعلمات الأمنية security parameters. وفي HTTP/1.1 يُكتب اسم الحقل متبوعًا بنقطتين ثم القيمة، مع مسافة اختيارية key: value ويكون الـ HTTP header بالشكل التالي:

  • Host: www.closetag.com: يحدد عنوان أو دومين الخادم المستهدف.
  • User-Agent: Mozilla/5.0: يحدد معلومات عن العميل [مثل المتصفح الموجود علي جهاز المستخدم ولا تكفي Mozilla/5.0 وحدها لإثبات أنه Firefox؛ تستخدمها متصفحات مختلفة للتوافق].
  • Accept-Language: en-US: يعبر عن اللغات التي يفضلها العميل، ولا يثبت لغة الصفحة التي سيعيدها الخادم.
  • Content-Type: application/x-www-form-urlencoded: يحدد نوع البيانات المرسلة في الجسم Body.
  • Content-Length: 27: يحدد طول البيانات المرسلة في الجسم Body بالبايتات.

HTTP Request Headers

بادئة أو رأس طلب http تكون بهذا الشكل.

نص
Host: www.closetag.com
User-Agent: Mozilla/5.0
Accept-Language: en-US

HTTP Request Body جسم طلب HTTP

جسم HTTP Body يحتوي على البيانات المُرسَلة مع الطلب، ويشيع مع POST وPUT. يكون GET المعتاد بلا جسم لأن دلالة محتوى GET غير معرّفة عمومًا.

في طلبات GET requests، يتم إرسال البيانات عادةً كجزء من عنوان URL بدلاً من جسم HTTP Body، وبالتالي يكون جسم HTTP Body فارغًا بالفعل. البيانات في طلبات GET requests تضاف إلى نهاية عنوان URL في شكل سلسلة استعلام [query string]. في مثال البحث نرسل q=html في الاستعلام، وتبقى معلومات أخرى في الرؤوس. لا تضع كلمات المرور في URL لأنها قد تظهر في السجل والتاريخ والروابط.

في طلبات POST requests، يتم إرسال البيانات عادةً كجزء من جسم HTTP Body بدلاً من عنوان URL. يتم نقل المعلومات المطلوبة أو البيانات التي يجب معالجتها إلى الخادم من خلال جسم HTTP Body. لا يشفّر POST البيانات لمجرد وضعها في الجسم؛ استخدم HTTPS وتحقق من المدخلات على الخادم. يعتمد الحجم المقبول على حدود الخادم والتطبيق، وقد يحتوي URL لطلب POST على استعلام أيضًا.

HTTP Get Request Message

رسالة طلب http تكون كاملة بهذا الشكل في حال كان من النوع get.

نص
GET /search?q=html HTTP/1.1
Host: www.closetag.com
User-Agent: Mozilla/5.0
Accept-Language: en-US

HTTP Post Request Message

رسالة طلب http تكون كاملة بهذا الشكل في حال كان من النوع POST.

نص
POST /login HTTP/1.1
Host: www.closetag.com
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 27

username=user&password=pass

HTTP Header Fields حقول البادئة أو رأس رسالة HTTP

  • User-Agent: Mozilla/5.0: يحدد معلومات عن المتصفح الذي يستخدمه العميل.
  • Host: www.closetag.com: يحدد عنوان أو دومين الخادم المستهدف.
  • Accept-Language: es, fr: يحدد اللغات المفضلة للمحتوى لدى العميل.
  • Date: Tue, 25 Jul 2023 10:30:00 GMT: يحدد تاريخ ووقت الطلب أو الاستجابة.
  • Server: Nginx: يحدد معلومات عن خادم الويب الذي يستجيب للطلب.
  • Last-Modified: Fri, 21 Jul 2023 15:00:00 GMT: يحدد آخر تاريخ تعديل للمحتوى المطلوب.
  • ETag: "a1b2c3d4-e-12345678": معرف فريد للإصدار الحالي من المورد.
  • Accept-Ranges: none: يحدد إذا كانت الخادم يقبل طلبات بتجزئة المحتوى.
  • Content-Length: 100: يحدد طول المحتوى بالبايتات.
  • Vary: User-Agent: يحدد أن اختيار الاستجابة المخزنة يحتاج مراعاة قيمة حقل User-Agent.
  • Content-Type: application/json: يحدد نوع المحتوى المُرسل.
  • Set-Cookie: sessionId=abc123; Path=/; HttpOnly: ينشئ ملف تعريف الارتباط لتعريف جلسة المستخدم ويحدد مساره.

HTTP Header Fields

هذه الحقول توضح تفاصيل الاتصال بين العميل والخادم، بما في ذلك نوع المتصفح، الخادم، وتفضيلات اللغة.

هذه قائمة تعليمية تجمع حقول طلب واستجابة، وليست رسالة HTTP واحدة صحيحة. Set-Cookie حقل استجابة؛ لا تعني HttpOnly وحدها تشفير النقل أو أمان الجلسة بالكامل.

نص
User-Agent: Mozilla/5.0
Host: www.closetag.com
Accept-Language: es, fr
Date: Tue, 25 Jul 2023 10:30:00 GMT
Server: Nginx
Last-Modified: Fri, 21 Jul 2023 15:00:00 GMT
ETag: "a1b2c3d4-e-12345678"
Accept-Ranges: none
Content-Length: 100
Vary: User-Agent
Content-Type: application/json

مشاركة

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

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

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

المصطلحات10

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

0 / 10 مفهومةأول بطاقة، أول خطوة
01 Request And Response الطلب والإستجابة
للمراجعة
02 Browser متصفح
<p><a href="https://www.closetag.com/tutorial/internet/browsers">المزيد عن Browser</a></p>
للمراجعة
03 Request طلب
للمراجعة
04 Operating System نظام تشغيل
للمراجعة
05 Default Getaway البوابة الإفتراضية الخاصة بالشبكة
<p><a href="https://www.closetag.com/tutorial/internet/servers">المزيد عن Default Getaway</a></p>
للمراجعة
06 Router موزع
للمراجعة
07 local IP بروتوكول الإنترنت المحلي
<p><a href="https://www.closetag.com/tutorial/internet/ip-address">المزيد عن local IP</a></p>
للمراجعة
08 Public Ip بروتوكول الإنترنت العام
<p><a href="https://www.closetag.com/tutorial/internet/ip-address">المزيد عن Public Ip</a></p>
للمراجعة
09 Response الإإستجابة أو الرد
للمراجعة
10 Internet شبكة الإنترنت
للمراجعة

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

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

الاختصارات2

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

0 / 2 مفهومةأول بطاقة، أول خطوة
01 IP IP
Internet Protocol
بروتوكول الانترنت<p><a href="https://www.closetag.com/tutorial/internet/ip-address">المزيد عن IP</a></p>
للمراجعة
02 ISP ISP
Internet Service Providers
مزود خدمة الانترنت<p><a href="https://www.closetag.com/tutorial/internet/ip-address">المزيد عن ISP</a></p>
للمراجعة

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

مساحة التحدي

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

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

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

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

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

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

اي مما يلي من خطوات عملية ال Request ؟

02

اي مما يلي من خطوات عملية ال Response ؟