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

رسائل HTTPHTTP Messages

سنتعرف في هذا الدرس ما هي رسائل بروتوكول نقل النصوص HTTP أو HTTP Messages. وسنستعرض أهمية رسائل HTTP Messages، كما سنتعرف على محتويات رسالة HTTP Messages المختلفة وكيفية تكوينها لضمان تفاعل سلس وفعال بين الأطراف المتصلة.
أقسام الدرس
3
الأمثلة
1
اللغة
العربية
تاريخ النشر
المشاهدات
1,078
محتوى الدرس
في هذا الدرس 3تصفّح المواضيع

HTTP Hypertext Transfer Protocol Messages رسائل بروتوكول نقل النصوص HTTP

رسائل HTTP هي المكونات الأساسية التي تتيح الاتصال بين العميل والخادم عبر الشبكة؛ يعمل HTTP/1.1 وHTTP/2 فوق TCP، بينما يعمل HTTP/3 فوق QUIC. وتتكون هذه الرسائل من طلبات  HTTP requests يرسلها العميل، واستجابات HTTP responses يقدمها الخادم. وبهذه الطريقة، تُعتبر رسائل HTTP الوسيلة التي تمكن المستخدمين من التفاعل مع المواقع والتطبيقات على الإنترنت بسهولة.

تقوم رسالة الطلب بتحديد نوع العملية المطلوبة، سواء كانت جلب محتوى، أو إرسال بيانات [مثل اسم مستخدم وكلمة مرور]، أو حذف مورد معين، وذلك باستخدام الطرق الشائعة مثل GET، POST، PUT، و DELETE.

ومن ناحية أخرى، تحتوي رسائل الاستجابة على معلومات مثل حالة الطلب، والمحتوى المطلوب، وأي رؤوس headers إضافية توفر تفاصيل أكثر عن الاتصال والتفاعل. ويستخدم بروتوكول HTTP معرف الموارد الموحد URI لتحديد المورد [مثل صفحة ويب]؛ يفسر العميل العنوان ويستخدم بروتوكولات الشبكة لإنشاء الاتصال أو يعيد استخدام اتصال مناسب، ولا ينشئ URI الاتصال بنفسه.

Importance of HTTP message أهمية رسالة HTTP

أهمية رسائل HTTP في الاتصال بين العميل والخادم: تلعب رسائل HTTP دورًا حاسمًا في التواصل بين العميل والخادم على الإنترنت. سواء كنت تتصفح موقع ويب، أو تُرسل بيانات عبر الإنترنت، أو تتفاعل مع تطبيق ويب، فغالبًا ما يجري الاتصال بالخادم عبر رسائل HTTP؛ قد تعمل بعض التفاعلات محليًا أو تستخدم بروتوكولات أخرى.

أهمية رسالة HTTP:

  • جسر الاتصال Communication Bridge: رسائل HTTP تمثل الوسيط بين العميل [مثل المتصفح أو تطبيق العميل] والخادم. توضح طلبات HTTP request ما يحتاجه العميل، بينما تعيد استجابات HTTP response المحتوى المطلوب أو نتائج العمليات من الخادم.

  • تنوع العمليات Variety of Operations: تدعم رسائل HTTP مجموعة واسعة من العمليات. باستخدام طرق مختلفة مثل [GET]، [POST]، [PUT]، و [DELETE]، يمكن للعملاء والخوادم تنفيذ مهام متعددة بدءًا من جلب البيانات إلى تحديثها أو حذفها.

  • تفاعل المستخدم User Interaction: تمكن رسائل HTTP المستخدمين من التفاعل مع المواقع والتطبيقات على الإنترنت بسهولة. عندما يقوم المستخدم بملء نموذج على صفحة ويب وضغط زر الإرسال، يتم إرسال هذه البيانات كرسالة HTTP إلى الخادم.

  • إدارة المحتوى Content Management: تتيح رسائل HTTP للخوادم إرسال أنواع مختلفة من المحتوى إلى العملاء. يمكن أن تكون هذه المحتويات صفحات HTML، ملفات JSON، صور، فيديوهات، أو أي نوع آخر من البيانات. هذا التنوع يُمَكِّن المواقع والتطبيقات من توفير تجربة مستخدم غنية ومتنوعة.

  • التحكم في الأمان والجلسات Security and Session Control: يمكن استخدام رؤوس HTTP headers لتوفير معلومات أمنية وإدارة الجلسات. مثلًا، يمكن لرأس  authorization تمرير بيانات المصادقة، بينما يمكن لرؤوس HTTP headers مثل [Set-Cookie] إدارة الجلسات بين العميل والخادم. 

  • تحسين الأداء Performance Improvement: تساهم رسائل HTTP في تحسين أداء التطبيقات عبر آليات مثل التخزين المؤقت caching، ضغط البيانات compression، وتجزئة المحتوى content fragmentation لتجعل النقل أكثر كفاءة وسرعة.

  • القابلية للتوسعة Extensibility: باستخدام رؤوس HTTP headers القابلة للتخصيص، يمكن توسيع وظيفة HTTP لتلبية متطلبات محددة. يمكن للمطورين إضافة رؤوس HTTP headers جديدة لتوفير معلومات إضافية وتحسين الاتصالات بين العملاء والخوادم.

HTTP Message Contents محتويات رسالة بروتوكول HTTP

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

  2. الرؤوس Headers: توفر معلومات إضافية عن الطلب HTTP requests أو الاستجابة HTTP response، وفي HTTP/1.1 يكتب اسم الحقل متبوعًا بنقطتين ثم القيمة، ويمكن أن تفصلها مسافة اختيارية [`Key: Value`].

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

  4. سطر الحالة Status Line: يُستخدم في استجابة HTTP response ويشمل إصدار البروتوكول HTTP Version مثل [HTTP/1.1]. وكود الحالة status code [مثل 200 للدلالة على نجاح الطلب request].

تنطبق أسطر البداية والرؤوس النصية هنا على HTTP/1.1. في HTTP/2 وHTTP/3 تنقل المعلومات عبر إطارات ثنائية. لمحتوى GET دلالة عامة غير معرّفة؛ لا ينشئ العميل جسم GET إلا عند اتفاق مباشر مع الخادم على دعمه.

HTTP Message

هيكلة رسالة HTTP التي يتم تبادلها بين العميل أو الخادم.

هذا ترميز ABNF لوصف البنية، وليس رسالة تُرسل حرفيًا. CRLF نهاية سطر، والتكرار * يعني صفرًا أو أكثر، والقوسان المربعان يعنيان أن جسم الرسالة اختياري.

نص
HTTP-message = start-line CRLF
               *( field-line CRLF )
               CRLF
               [ message-body ]

مشاركة

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

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