
HTTP Message
في هذ الدرس سوف نتعرف علي الرسائل التي يتم ارسالها واستقبالها بين متصفح المستخدم والخادم
التاريخ
الدروس
المستوى
اللغة
المشاهدات
المواضيع
HTTP Message
</> HTTP Message
رسائل HTTP هي كيفية تبادل البيانات بين الخادم والعميل. هناك نوعان من الرسائل:
- الطلبات Request المرسلة من قبل العميل لبدء إجراء على الخادم ،
- والردود Response الإجابة من الخادم.
تتكون رسائل HTTP من معلومات نصية مشفرة في ASCII ، وتمتد عبر عدة أسطر. في HTTP / 1.1 والإصدارات السابقة من البروتوكول ،
تم إرسال هذه الرسائل بشكل مفتوح عبر الاتصال. في HTTP / 2 ، يتم الآن تقسيم الرسالة التي كان يمكن قراءتها من قبل الإنسان إلى إطارات HTTP ،مما يوفر تحسينات وتحسينات في الأداء.
نادرًا ما يقوم مطورو الويب أو مشرفو المواقع بصياغة رسائل HTTP النصية هذه بأنفسهم: يقوم البرنامج أو مستعرض الويب أو الوكيل أو خادم الويب بتنفيذ هذا الإجراء. أنها توفر رسائل HTTP من خلال ملفات التكوين (للوكلاء أو الخوادم) أو واجهات برمجة التطبيقات (للمتصفحات) أو واجهات أخرى.
- Initial Request Line
- Initial Response Line

</> Initial Request Line
يختلف السطر الأولي بالنسبة Request و Response .يتكون سطر الطلب من ثلاثة أجزاء:
- اسم الطريقة
- والمسار المحلي للمورد المطلوب
- وإصدار HTTP المستخدم.
- كل هذه الأجزاء مفصولة بمسافات.

Syntax
GET /path/to/file/index.html HTTP/1.0
</> Initial Response Line
يُعرف سطر الاستجابة الأولي أيضًا باسم سطر الحالة.
يحتوي أيضًا على ثلاثة أجزاء:
- إصدار HTTP ،
- ورمز حالة الاستجابة الذي يعطي نتيجة الطلب ،
- وعبارة السبب الإنجليزية التي تصف رمز الحالة.

HTTP/1.0 200 OK or HTTP/1.0 404 Not Found
</> Message Headers
Message header : يوفر معلومات حول الطلب والاستجابة. كما يوفر معلومات حول الكائن الذي يتم إرساله في نص الرسالة. يوجد أربعة أنواع يمكن ان تتواجد خلالها ال Message Headers وهم
- General Header : لها قابلية عامة للتطبيق على كل من رسائل الطلب Request ورسائل الرد Response
- Request Header : لها قابلية للتطبيق على رسائل الطلب Request فقط
- Response Header : لها قابلية للتطبيق على رسائل الرد Response فقط
- Entity Header : تقوم بتحديد ال meta-information الخاصة بال entity-body وعن المصدر الذي تم تعريفه بواسطة ال Request
- جميع ال Headers المذكورة أعلاه تتبع نفس التنسيق العام. يتكون كل حقل منهم من اسم متبوع بنقطتين وقيم الحقل على النحو التالي:
message-header = field-name ":" [ field-value ]
</> Message Body
يتم استخدامmessage-body لرسالة HTTP لحمل النص الكامل المرتبط بالطلب والاستجابة. يختلف message-body عن entire-body فقط عندما يتم تطبيق transfer-coding ،
message-body = entity-body | <entity-body encoded as per Transfer-Encoding>
</> Message Length
طول transfer-length هو طول نص الرسالة ، ويظهر في الرسالة.
في Message، عندما يُسمح بالرسالة ، ويتم توفير طول المحتوى ، يجب أن تتطابق قيمة الحقل تمامًا مع عدد OCTETs في نص الرسالة. عند استلام طول غير صالح واكتشافه ، يجب على وكلاء مستخدم user agents HTTP / 1.1 إعلام المستخدم.
</> General Header Fields
- يمكن تطبيق بعض header fields لكل من رسائل الطلب والرد.
- تنطبق header fields هذه فقط عند إرسال الرسالة.
Syntax
general-header = Cache-Control