HTTP Message

HTTP Message

تُستخدم رسالة HTTP لإظهار كيفية تبادل البيانات بين العميل والخادم. يعتمد على بنية خادم العميل. عميل HTTP هو برنامج ينشئ اتصالاً بخادم لإرسال رسالة طلب HTTP أو أكثر. خادم HTTP هو برنامج يقبل الاتصالات لخدمة طلبات HTTP عن طريق إرسال رسائل استجابة HTTP.

يمكن تصنيف رسائل HTTP على النحو التالي:

نوع الرسالة (Message Type)

تتكون رسالة HTTP من سطر طلب أولي وخط استجابة أولية.

شكل:

  1. HTTP-message = Request | Response ; HTTP/1.1 messages  

1) خط الطلب الأولي (Initial Request Line)

يختلف السطر الأول بالنسبة للطلب والاستجابة. يتكون سطر الطلب من ثلاثة أجزاء: اسم الطريقة والمسار المحلي للمورد المطلوب وإصدار HTTP المستخدم. كل هذه الأجزاء مفصولة بمسافات.

بناء الجملة:

  1. GET /path/to/file/index.html HTTP/1.0  

هنا,

  • GET هي أكثر طرق HTTP شيوعًا.
  • يُظهر المسار جزء عنوان URL بعد اسم المضيف. ويسمى أيضًا طلب URI.
  • إصدار HTTP دائمًا يتخذ شكل " HTTP / xx " ، بأحرف كبيرة.
رسالة HTTP

2) خط الاستجابة الأولية (Initial Response Line)

يُعرف سطر الاستجابة الأولي أيضًا باسم سطر الحالة. يحتوي أيضًا على ثلاثة أجزاء: إصدار HTTP ، ورمز حالة الاستجابة الذي يعطي نتيجة الطلب ، وعبارة السبب الإنجليزية التي تصف رمز الحالة.

مثال:

  1. HTTP/1.0 200 OK  
  2. or  
  3. HTTP/1.0 404 Not Found

هنا،

إصدار HTTP من سطر الاستجابة وسطر الطلب هما نفس "HTTP / xx".

رسالة HTTP

رؤوس الرسائل (Message Headers)

يوفر رأس الرسالة معلومات حول الطلب والاستجابة. كما يوفر معلومات حول الكائن الذي يتم إرساله في نص الرسالة. رؤوس الرسائل من أربعة أنواع:

  1. العنوان العام: له قابلية تطبيق عامة لكل من رسائل الطلب ورسائل الرد.
  2. عنوان الطلب: ينطبق فقط على رسائل الطلب.
  3. رأس الاستجابة: يمكن تطبيقه فقط على رسائل الاستجابة.
  4. عنوان الكيان: يحدد المعلومات الوصفية حول الكيان-الجسم ، وحول المورد المحدد بالطلب.

كل الرؤوس المذكورة أعلاه تتبع نفس التنسيق العام. يتكون كل حقل من حقول الرأس من اسم متبوع بنقطتين وقيم الحقل على النحو التالي:

  1.   message-header = field-name ":" [ field-value ]

نص الرسالة (Message Body)

يتم استخدام نص الرسالة لرسالة HTTP لحمل النص الكامل المرتبط بالطلب والاستجابة. يختلف نص الرسالة عن النص بالكامل فقط عندما يتم تطبيق ترميز النقل ، كما هو مشار إليه في حقل رأس ترميز النقل.

بناء الجملة

  1. message-body = entity-body  
  2.         | <entity-body encoded as per Transfer-Encoding>

يجب استخدام ترميز التحويل للإشارة إلى أي ترميز نقل يتم تطبيقه بواسطة تطبيق لضمان النقل الآمن والسليم للرسالة. ترميز النقل هو خاصية للرسالة.

طول الرسالة (Message Length)

طول نقل الرسالة هو طول نص الرسالة ، ويظهر في الرسالة.

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

حقول الرأس العامة (General Header Fields)

يمكن تطبيق بعض حقول الرأس لكل من رسائل الطلب والرد. تنطبق حقول الرأس هذه فقط عند إرسال الرسالة.

بناء الجملة

  1.   general-header = Cache-Control 

إرسال تعليق

أحدث أقدم

نموذج الاتصال