HTTP Response
استجابة HTTP
سنتعرف في هذا الدرس على استجابة HTTP response، وسنتكلم عن بنية رسالة استجابة HTTP response message structure، وسطر الحالة HTTP response status line، ورؤوس استجابة HTTP response headers ، وجسم استجابة HTTP response body، لفهم كيفية تبادل البيانات وتفسيرها بين العميل والخادم.
التاريخ
الدروس
المستوى
اللغة
المشاهدات
المواضيع
الشروحات chevron_left HTTP Response chevron_left Web Technology
HTTP Response
استجابة HTTP
</>
HTTP Response
استجابة HTTP
تُعد استجابة HTTP response جزءًا أساسيًا من بروتوكول HTTP. عندما يُرسل المستخدم طلبًا للوصول إلى صفحة أو مورد مُعين عبر الإنترنت [مثلا صفحة كلوز تاج]، يقوم الخادم بمعالجة هذا الطلب ويرسل استجابة response إلى جهاز المستخدم ومن ثم إلى المتصفح الذي قام المستخدم بتفويضه للتواصل مع الخادم، وتشمل هذه الاستجابة المعلومات المطلوبة مثل صفحة ويب مُعينة أو التحقق من كلمة المرور واسم المستخدم أو أي طلب آخر.
تتكون بِنْيَة رسالة استجابة HTTP response من ثلاثة أجزاء رئيسية وهي سطر الحالة HTTP status line، وحقول البادئة أو الرؤوس HTTP headers، وجسم الرسالة HTTP message body. وسنتكلم عنها بالتفصيل لاحقاً.
HTTP Response
نموذج من شكل رسالة الاستجابة HTTP response body التي يرد بها الخادم على وكيل العميل وهو المُتصفح، كما يلي:
HTTP/1.1 200 OK Date: Wed, 23 Aug 2023 18:25:00 GMT Server: Apache/2.4.41 (Ubuntu) Content-Type: text/html; charset=UTF-8 Content-Length: 138 <!DOCTYPE html> <html> <head> <title>HTTP Response</title> </head> <body> <h1>HTTP Response!</h1> <p>HTTP Response Message.</p> </body> </html>
</>
HTTP Response Message Structure
بنية رسالة استجابة HTTP
توضح بنية رسالة استجابة HTTP response كيفية هيكلة الرسائل التي يرسلها الخادم إلى العميل، وتتألف من سطر الحالة status line، والرؤوس headers، والجسم body.
بنية رسالة استجابة HTTP Response:
1. سطر الحالة Status Line: يتضمن سطر الحالة في استجابة HTTP response إصدار بروتوكول HTTP، وكود الحالة الذي يوضح نتيجة الطلب [مثل 200 للدلالة على نجاح الطلب أو 404 للدلالة على عدم العثور علي الصفحة المطلوبة]، وعبارة السبب التي تشرح الحالة بإيجاز.
2. الرؤوس Headers: توفر معلومات إضافية عن الاستجابة أو الخادم، يُكتب كل رأس في سطر منفصل متبوعًا بنقطتين ومسافه key: value.
3. الجسم Body: يحتوي على البيانات المُرسَلة من الخادم إلى العميل، مثل ملفات HTM أو JSON، أو ملفات أخرى. في حالة كود الحالة 204 لا يوجد محتوى، يكون الجسم فارغًا.
HTTP Get Request Message
إذا قام العميل بطلب الصفحة الرئيسية لموقع كلوز تاج، يكون الطلب من العميل بالشكل التالي:
GET /index.html HTTP/1.1 Host: www.closetag.com User-Agent: Mozilla/5.0 Accept-Language: en-US
</>
HTTP Response Status Line
سطر حالة استجابة HTTP
- إصدار البروتوكول المستخدم: مثل [HTTP/1.1].
- رقم الحالة: مثل [200 أو 404].
- وصف نصي قصير يوضح معنى رقم الحالة: على سبيل المثال، يشير الرقم 200 إلى ok أن الطلب تم بنجاح، بينما يشير الرقم 404 إلى أن الصفحة المطلوبة غير موجودة في الخادم.
يساعد هذا النظام في تسهيل عملية التواصل بين العميل والخادم، وتحديد الخطوات التالية بناءً على نتائج الاستجابة، وهي مفيدة للمطورين لمسح المشاكل وتحسين التفاعل بين البرمجيات المختلفة.
HTTP Response Status Line
إليك مثالًا على سطر حالة استجابة HTTP response.
HTTP/1.1 200 OK
</>
HTTP Response Headers
رؤوس استجابة HTTP
رؤوس استجابة HTTP response تعتبر جزءًا مهمًا من بروتوكول HTTP الذي يُستخدم لنقل البيانات بين الخوادم ومتصفحات الويب حيث تحمل هذه الرؤوس headers معلومات مفصلة حول الاستجابةresponse التي يرسلها الخادم بعد تلقيه طلبًا من المتصفح مما يساعد في تحديد كيفية التعامل مع المحتوى والبيانات القادمة.
تشمل هذه الرؤوس headers عدة أنواع من المعلومات مثل نوع المحتوى، حجمه، تاريخه، وتوجيهات التخزين المؤقت. ويمكن لمطوري الويب والمسؤولين عن المواقع الإلكترونية استخدام هذه الرؤوس headers لضبط سلوك المتصفحات، وتحسين الأداء العام للموقع، وزيادة مستوى الأمان. وتعد رؤوس الاستجابة مثل نوع المحتوى Content-Type، والتخزين المؤقت Cache-Control، وتعيين ملف تعريف الارتباط Set-Cookie عناصر حيوية في تحسين تجربة المستخدم وتقديم محتوى ديناميكي، ليكون المحتوى الذي يتم تقديمه على الصفحة معدلاً في الوقت الفعلي ليعكس تفاعلات المستخدم ومخصص لتفضيلاته الشخصية، مما يوفر تجربة أكثر جذباً وملائمة للمستخدم.
HTTP Response Headers Syntax
تأتي رؤوس استجابة HTTP response headers على هيئة مفتاح وقيمة key: value، حيث يحدد المفتاح نوع المعلومات المرسلة بينما تعطي القيمة تفاصيل تلك المعلومات.
Key:Value
HTTP Response Headers
إليك مثالًا على مجموعة من رؤوس استجابة HTTP response headers .
Date: Wed، 23 Aug 2023 18:25:00 GMT Server: Apache/2.4.41 (Ubuntu) Content-Type: text/html; charset=UTF-8 Content-Length: 138 Connection: keep-alive Cache-Control: no-cache
HTTP Response Headers
</>
HTTP Response Body
جسم استجابة HTTP
جسم استجابة HTTP response body هو جزء من الاستجابة response التي ترسلها الخوادم إلى العميل بعد معالجة طلب HTTP request، وهو يتضمن محتوى البيانات التي طلبها العميل مثل صفحات HTML، وملفات الصور، والفيديو، والنصوص، وملفات JSON.
بنية جسم استجابة HTTP Response Body Structure: تتكون من محتوى البيانات الفعلي. تقوم الخوادم بإرسال هذه البيانات على هيئة سلسلة من الحروف والرموز المتفق عليها كما هو موضح في مواصفات بروتوكول HTTP. فعلى سبيل المثال، عند زيارة صفحة ويب، يرسل المتصفح طلبًا إلى الخادم الذي يستجيب بإرسال معلومات الصفحة المطلوبة في جسم استجابة HTTP response body، مما يسمح للمتصفح بعرضها للمستخدم.
HTTP Response Body
إليك مثالًا على جسم استجابة HTTP response body لصفحة ويب.
<!DOCTYPE html> <html> <head> <title> CloseTag | HTTP Response </title> </head> <body> <h1>CloseTag | HTTP Response</h1> ... </body> </html>
HTTP Response Message
إليك رسالة استجابة HTTP response message كاملة تحتوي على كافة الأجزاء:
HTTP/1.1 200 OK Date: Wed، 23 Aug 2023 18:25:00 GMT Server: Apache/2.4.41 (Ubuntu) Content-Type: text/html; charset=UTF-8 Content-Length: 138 Connection: keep-alive Cache-Control: no-cache Set-Cookie: sessionId=abc123; Path=/; HttpOnly <!DOCTYPE html> <html> <head> <title> CloseTag | HTTP Response</title> </head> <body> <h1>HTTP Response</h1> ... </body> </html>